3/21/2015
Gmail bom extend JCI program kodu
Mustafa Kont <
[email protected]>
bom extend JCI program kodu Meltem Altin <
[email protected]>
19 March 2015 at 11:55
*********************************************************************** * Report: ZGTP2P_I_MATERIAL_IDOC_PLANTX * * Created: FEB 10, 2011 * Author: Selvaraj M * Function: Material and BOM Idoc to MAPICS, Material and BOM * Extension for Target Plant * Conditions: ...... * Issue / ticket number: SAPP3869 * * History of Change: * Version Date Author Reason of Change * * V00001 dd.mm.yyyy Name Change * V00002 07.09.2011 CSRITHB Map unit of measure as PCS if * materials are generated from * drawings.Incase of multiple * drawings,replace '' with * space in the alt mat no. * JIRA 4454. TR YRDK970987 * * V00003 29.09.2011 CMANISE Changed the logic for single * DWG document scenario same as * the multiple DWG documents * scenario. * JIRA 4600. TR YRDK971569 * V00004 08.12.2011 CSRITHB 1.Fix to correct the material no * in the long text internal * table ed on to material * extension BAPI * 2.To clear indicators like * engineering,costing,sales etc.. * to enable BOM creation FM to * default them based on BOM usage * JIRA 4840. * TRs YRDK973079,YRDK973085, * YRDK973139,YRDK973245 ** * V5.0 Jun 26'12 SAPP5375 CBENJAA Fix BOM accuracy and * for document texts which are longer than 1000 chars in matinterface * TR No.YRDK976115 ** * V00006 14.08.2013 CMANISE SAPP6202, DIR logic inclusion * for BPSS project *********************************************************************** REPORT zgtp2f_i_material_idoc_plantx MESSAGEID zup_01 NO STANDARD PAGE HEADING LINESIZE 1023. TYPEPOOLS: slis. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
1/124
3/21/2015
Gmail bom extend JCI program kodu
*Types and Data declarations for BOM and MAT IDoc DATA : gs_mastseg LIKE ze1mastm, gs_stposeg LIKE ze1stpom, gs_maraseg LIKE ze2maram, gs_marcseg LIKE ze2marcm, gs_maktseg LIKE ze2maktm, gs_mtxlseg LIKE ze2mtxlm. *Data declaration for BOM TYPES: BEGIN OF ty_bom_final, matnr TYPE maramatnr, stlan TYPE maststlan, zp2f_oldmat TYPE marczp2f_oldmat, matnr1 TYPE objky, END OF ty_bom_final. TYPES: BEGIN OF ty_bom_final1, sel TYPE c, matnr TYPE mastmatnr, werks TYPE mastwerks, stlan TYPE maststlan, plant TYPE marcwerks, bomuse TYPE maststlan, ecn TYPE stkoaennr, END OF ty_bom_final1. TYPES: BEGIN OF ty_bom_final2, sel TYPE c, matnr TYPE mastmatnr, matnr_c TYPE mastmatnr, werks TYPE mastwerks, stlan TYPE maststlan, plant TYPE marcwerks, bomuse TYPE maststlan, ecn TYPE stkoaennr, END OF ty_bom_final2. TYPES: BEGIN OF ty_bom_ext, sel TYPE c, matnr TYPE mastmatnr, werks TYPE mastwerks, stlan TYPE maststlan, stlal TYPE maststlal, plant TYPE marcwerks, bomuse TYPE maststlan, ecn TYPE stkoaennr, END OF ty_bom_ext. TYPES: BEGIN OF ty_bom_ext_final, sel TYPE c, matnr TYPE mastmatnr, werks TYPE mastwerks, stlan TYPE maststlan, stlal TYPE maststlal, plant TYPE marcwerks, END OF ty_bom_ext_final. TYPES: BEGIN OF ty_aeoi, aennr TYPE aeoiaennr, objkt TYPE maramatnr, revlv TYPE aeoirevlv, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
2/124
3/21/2015
Gmail bom extend JCI program kodu
END OF ty_aeoi. TYPES: BEGIN OF ty_aeoi_bom, aennr TYPE aeoiaennr, objkt TYPE aeoiobjkt, stlnr TYPE maststlnr, END OF ty_aeoi_bom. *Types and Data declarations for Material TYPES: BEGIN OF ty_marc, matnr TYPE marcmatnr, werks TYPE marcwerks, beskz TYPE marcbeskz, zptyp TYPE marczptyp, ausme TYPE marcausme, sobsl TYPE marcsobsl, zp2f_oldmat TYPE marczp2f_oldmat, END OF ty_marc. TYPES: BEGIN OF ty_mara, matnr TYPE objky, mtart TYPE maramtart, meins TYPE marameins, brgew TYPE marabrgew, gewei TYPE maragewei, zzglat TYPE marazzglat, datab TYPE maradatab, kzumw TYPE marakzumw, matnr1 TYPE cdobjectv, ecm TYPE cuobn, ecm1 TYPE aenraennr, END OF ty_mara. TYPES: BEGIN OF ty_drad_draw, dokar TYPE dokar, doknr TYPE doknr, dokvr TYPE dokvr, doktl TYPE doktl_d, dokob TYPE dokob, obzae TYPE obzae, objky TYPE objky, dokst TYPE dokst, objnum TYPE objnum, END OF ty_drad_draw. TYPES: BEGIN OF ty_drad_draw_new, dokar TYPE dokar, doknr TYPE doknr, dokvr TYPE dokvr, doktl TYPE doktl_d, dokob TYPE dokob, obzae TYPE obzae, objky TYPE objky, dokst TYPE dokst, aennr TYPE daenr, objnum TYPE objnum, END OF ty_drad_draw_new. TYPES: BEGIN OF ty_makt, matnr TYPE maktmatnr, maktx TYPE maktmaktx, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
3/124
3/21/2015
Gmail bom extend JCI program kodu
spras TYPE maktspras, END OF ty_makt. TYPES: BEGIN OF ty_ausp, objnum TYPE auspobjek, klart TYPE auspklart, atwrt TYPE auspatwrt, END OF ty_ausp. *Declaration part for messages TYPES: BEGIN OF ty_messages, sel, icon TYPE icon_d, docnum TYPE edidcdocnum, matnr TYPE matnr, zp2f_oldmat TYPE marczp2f_oldmat, werks TYPE werks_d, message(150) TYPE c, END OF ty_messages. *Internal table declaration for Extend in SAP Part TYPES: BEGIN OF ty_target_plnt, matnr TYPE marcmatnr, werks TYPE marcwerks, lgpro TYPE marclgpro, END OF ty_target_plnt. TYPES: BEGIN OF ty_mara_e, matnr TYPE maramatnr, mtart TYPE maramtart, begru TYPE marabegru, kzeff TYPE marakzeff, kzkfg TYPE marakzkfg, labor TYPE maralabor, matkl TYPE maramatkl, meins TYPE marameins, mstae TYPE maramstae, mstde TYPE maramstde, satnr TYPE marasatnr, END OF ty_mara_e. TYPES: BEGIN OF ty_makt_e, matnr TYPE maktmatnr, maktx TYPE maktmaktx, spras TYPE maktspras, END OF ty_makt_e. TYPES: BEGIN OF ty_mrp, dispr TYPE mdipdispr, dismm TYPE mdipdismm, dispo TYPE mdipdispo, fhori TYPE mdipfhori, sbdkz TYPE mdipsbdkz, disls TYPE mdipdisls, webaz TYPE mdipwebaz, ekgrp TYPE mdipekgrp, fxhor TYPE mdipfxhor, vrmod TYPE mdipvrmod, vint1 TYPE mdipvint1, vint2 TYPE mdipvint2, strgr TYPE mdipstrgr, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
4/124
3/21/2015
Gmail bom extend JCI program kodu
lgpro TYPE mdiplgpro, beskz TYPE mdipbeskz, END OF ty_mrp. TYPES: BEGIN OF ty_cdhdr, objectid TYPE cdhdrobjectid, changenr TYPE cdhdrchangenr, planchngnr TYPE cdhdrplanchngnr, END OF ty_cdhdr. DATA: gt_cdhdr TYPE TABLE OF ty_cdhdr, gs_cdhdr TYPE ty_cdhdr. TYPES: BEGIN OF ty_aeoi_tmp, aennr TYPE aenraennr, aetyp TYPE aeoiaetyp, objkt TYPE aeoiobjkt, andat TYPE aeoiandat, END OF ty_aeoi_tmp. DATA: gt_aeoi_tmp TYPE TABLE OF ty_aeoi_tmp, gs_aeoi_tmp TYPE ty_aeoi_tmp. TYPES: BEGIN OF ty_matnr_tmp, objkt TYPE aeoiobjkt, END OF ty_matnr_tmp. DATA: gt_matnr_tmp TYPE TABLE OF ty_matnr_tmp, gs_matnr_tmp TYPE ty_matnr_tmp. TYPES: BEGIN OF ty_inob, cuobj TYPE objnum, objek TYPE inobobjek, END OF ty_inob. DATA: gt_inob TYPE TABLE OF ty_inob, gs_inob TYPE ty_inob. TYPES: BEGIN OF ty_ecm_ausp, objek TYPE auspobjek, atinn TYPE auspatinn, atwrt TYPE auspatwrt, END OF ty_ecm_ausp. DATA: gt_ecm_ausp TYPE TABLE OF ty_ecm_ausp, gs_ecm_ausp LIKE LINE OF gt_ecm_ausp. TYPES: BEGIN OF ty_aenr, aennr TYPE aenraennr, datuv TYPE aenrdatuv, END OF ty_aenr. DATA: gt_aenr TYPE TABLE OF ty_aenr, gs_aenr TYPE ty_aenr. TYPES: BEGIN OF ty_aenr_doc, aennr TYPE aenraennr, datuv TYPE aenrdatuv, END OF ty_aenr_doc. DATA: gt_aenr_doc TYPE TABLE OF ty_aenr_doc, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
5/124
3/21/2015
Gmail bom extend JCI program kodu
gs_aenr_doc TYPE ty_aenr_doc. *** BEGIN OF INSERTION SAPP4600 DATA: gt_aenr_doc_tmp TYPE TABLE OF ty_aenr_doc, gs_aenr_doc_tmp TYPE ty_aenr_doc. *** END OF INSERTION SAPP4600 TYPES: BEGIN OF ty_legacy_mat, matnr TYPE matnr, werks TYPE werks_d, zp2f_oldmat TYPE zbismt, END OF ty_legacy_mat. DATA: gt_legacy_mat TYPE STANDARD TABLE OF marc, gs_legacy_mat TYPE marc. TYPES: BEGIN OF ty_drat, doknr TYPE doknr, dktxt TYPE dktxt, END OF ty_drat. DATA: gt_drat TYPE TABLE OF ty_drat, gs_drat TYPE ty_drat. TYPES: BEGIN OF ty_sub_com, objky TYPE objky, END OF ty_sub_com. DATA: gt_sub_com TYPE TABLE OF ty_sub_com, gs_sub_com TYPE ty_sub_com. TYPES: BEGIN OF ty_allmat, matnr TYPE maramatnr, l_matnr TYPE marczp2f_oldmat, END OF ty_allmat. DATA: gt_allmat TYPE TABLE OF ty_allmat, gs_allmat TYPE ty_allmat. DATA: gt_doc_part TYPE STANDARD TABLE OF zgtp2f_doc_revlv, gs_doc_part LIKE LINE OF gt_doc_part. *** BEGIN OF INSERTION SAPP4600 DATA: gt_aedt TYPE TABLE OF aedt. *** BEGIN OF INSERTION SAPP4600 *Selection screen data types DATA: s_mara TYPE mara, s_mast TYPE mast, s_aenr TYPE aenr. *Internal table and work area declarations DATA: gt_bom_final TYPE TABLE OF ty_bom_final, gs_bom_final LIKE LINE OF gt_bom_final, gt_bom_create TYPE TABLE OF ty_bom_final1, gs_bom_create LIKE LINE OF gt_bom_create, gt_bom_create_final TYPE TABLE OF ty_bom_final2, gs_bom_create_final LIKE LINE OF gt_bom_create_final, gt_bom_ext TYPE TABLE OF ty_bom_ext, gs_bom_ext LIKE LINE OF gt_bom_ext, gt_bom_ext_final TYPE TABLE OF ty_bom_ext_final, gs_bom_ext_final LIKE LINE OF gt_bom_ext_final, gt_stb TYPE TABLE OF stpox, gs_stb LIKE LINE OF gt_stb, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
6/124
3/21/2015
Gmail bom extend JCI program kodu
gt_stb_mat TYPE TABLE OF stpox, gs_stb_mat LIKE LINE OF gt_stb, gt_aeoi TYPE TABLE OF ty_aeoi, gs_aeoi LIKE LINE OF gt_aeoi, gt_aeoi_bom TYPE TABLE OF ty_aeoi_bom, gs_aeoi_bom LIKE LINE OF gt_aeoi_bom. DATA: gt_marc TYPE TABLE OF ty_marc, gs_marc LIKE LINE OF gt_marc, gs_marc_tmp LIKE LINE OF gt_marc, "INS SAPP4600 gt_mara TYPE TABLE OF ty_mara, gs_mara LIKE LINE OF gt_mara, gt_makt TYPE TABLE OF ty_makt, gs_makt LIKE LINE OF gt_makt, gt_ausp TYPE TABLE OF ty_ausp, gs_ausp LIKE LINE OF gt_ausp, gt_ausp_dwg TYPE TABLE OF ty_ausp, gs_ausp_dwg LIKE LINE OF gt_ausp_dwg, gt_ausp_std TYPE TABLE OF ty_ausp, gs_ausp_std LIKE LINE OF gt_ausp_std. *For ALV GRID parameters Declaration DATA: gt_fieldcat TYPE lvc_t_fcat, gs_fieldcat LIKE LINE OF gt_fieldcat, gs_layout TYPE lvc_s_layo, gs_layout1 TYPE slis_layout_alv, gt_fieldcat1 TYPE slis_t_fieldcat_alv, gs_fieldcat1 LIKE LINE OF gt_fieldcat1, gt_fieldcat_bom TYPE slis_t_fieldcat_alv, gs_fieldcat_bom LIKE LINE OF gt_fieldcat_bom, gt_fieldcat_ext_bom TYPE slis_t_fieldcat_alv, gs_fieldcat_ext_bom LIKE LINE OF gt_fieldcat_ext_bom . DATA : gt_drad_draw TYPE TABLE OF ty_drad_draw, gs_drad_draw TYPE ty_drad_draw. DATA : gt_drad_draw_new TYPE TABLE OF ty_drad_draw_new, gs_drad_draw_new TYPE ty_drad_draw_new. DATA : gt_drad_draw_dwg TYPE TABLE OF ty_drad_draw_new, gs_drad_draw_dwg TYPE ty_drad_draw_new. DATA : gt_drad_draw_dwg1 TYPE TABLE OF ty_drad_draw_new, gs_drad_draw_dwg1 TYPE ty_drad_draw_new. DATA : gt_drad_draw_new1 TYPE TABLE OF ty_drad_draw_new, gs_drad_draw_new1 TYPE ty_drad_draw_new. DATA : gt_drad_draw_std TYPE TABLE OF ty_drad_draw_new, gs_drad_draw_std TYPE ty_drad_draw_new. DATA: gt_messages TYPE TABLE OF ty_messages, gs_messages LIKE LINE OF gt_messages. DATA: gt_map_plant TYPE TABLE OF zgtp2p_map_plant. DATA: gt_tline TYPE TABLE OF tline, gs_tline LIKE LINE OF gt_tline. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
7/124
3/21/2015
Gmail bom extend JCI program kodu
*IDoc data and control record structures DATA : gt_edidd LIKE TABLE OF edidd, gs_edidd LIKE LINE OF gt_edidd. DATA : gt_edidc LIKE TABLE OF edidc, gs1_edidc LIKE LINE OF gt_edidc. DATA : gs_edidc LIKE edidc. *Final internal table for ALV GRID *CODE INSPECTOR Message:We should give OCCURS 0 for this internal table *Because I'm generating fieldcatalog using FM, We need to give internal *table name with headerline to this FM DATA: BEGIN OF gt_alv_material OCCURS 0, sel, matnr LIKE marcmatnr, mtart LIKE maramtart, werks LIKE marcwerks, zptyp LIKE marczptyp, zp2f_oldmat LIKE marczp2f_oldmat, plant LIKE mastwerks, lgpro LIKE marclgpro, sobsl LIKE marcsobsl, vkorg LIKE mvkevkorg, vtweg LIKE mvkevtweg, bwkey LIKE mbewbwkey, lgnum LIKE mlgnlgnum, mat_r LIKE maramatnr, begru LIKE marabegru, kzkfg LIKE marakzkfg, labor LIKE maralabor, matkl LIKE maramatkl, meins LIKE marameins, maktx LIKE maktmaktx, spras LIKE maktspras, END OF gt_alv_material. TYPES: BEGIN OF ty_, matnr LIKE marcmatnr, mtart LIKE maramtart, werks LIKE marcwerks, zptyp LIKE marczptyp, zp2f_oldmat LIKE marczp2f_oldmat, plant LIKE mastwerks, lgpro LIKE marclgpro, vkorg LIKE mvkevkorg, bwkey LIKE mbewbwkey, lgnum LIKE mlgnlgnum, mat_r LIKE maramatnr, begru LIKE marabegru, kzkfg LIKE marakzkfg, labor LIKE maralabor, matkl LIKE maramatkl, meins LIKE marameins, maktx LIKE maktmaktx, spras LIKE maktspras, old_mat_no LIKE bapi_maraold_mat_no, pur_status LIKE bapi_marapur_status, net_weight LIKE bapi_maranet_weight, unit_of_wt LIKE bapi_maraunit_of_wt, mrp_type LIKE bapi_marcmrp_type, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
8/124
3/21/2015
Gmail bom extend JCI program kodu
mrp_ctrler LIKE bapi_marcmrp_ctrler, lotsizekey LIKE bapi_marclotsizekey, round_val LIKE bapi_marcround_val, proc_type LIKE bapi_marcproc_type, spproctype LIKE bapi_marcspproctype, iss_st_loc LIKE bapi_marciss_st_loc, backflush LIKE bapi_marcbackflush, determ_grp LIKE bapi_marcdeterm_grp, period_ind LIKE bapi_marcperiod_ind, availcheck LIKE bapi_marcavailcheck, prodprof LIKE bapi_marcprodprof, profit_ctr LIKE bapi_marcprofit_ctr, val_class LIKE bapi_mbewval_class, price_ctrl LIKE bapi_mbewprice_ctrl, price_unit LIKE bapi_mbewprice_unit, taxprice_1 LIKE bapi_mbewtaxprice_1, taxprice_2 LIKE bapi_mbewtaxprice_2, taxprice_3 LIKE bapi_mbewtaxprice_3, commprice1 LIKE bapi_mbewcommprice1, commprice2 LIKE bapi_mbewcommprice2, commprice3 LIKE bapi_mbewcommprice3, overhead_grp LIKE bapi_mbewoverhead_grp, variance_key LIKE bapi_marcvariance_key, lot_size LIKE bapi_marclot_size, END OF ty_. DATA: gt_ TYPE TABLE OF ty_, gs_ TYPE ty_. TYPES: BEGIN OF ty_target_plant, matnr TYPE marcmatnr, werks TYPE marcwerks, END OF ty_target_plant. DATA: gt_target_plant TYPE TABLE OF ty_target_plant, gs_target_plant TYPE ty_target_plant, gt_target_mis TYPE TABLE OF ty_target_plant, gs_target_mis TYPE ty_target_plant. *CODE INSPECTOR Message:We should give OOCURS 0 for this internal table *Because I'm generating fieldcatalog using FM, We need to give internal *table name with headerline to this FM DATA: BEGIN OF gt_bom_down OCCURS 0, sel , matnr LIKE mastmatnr, matnr_c LIKE maramatnr, werks LIKE mastwerks, stlan LIKE maststlan, chg_no LIKE stko_api02chg_no, valid_from LIKE stko_api02valid_from, base_quan LIKE stko_api02base_quan, bom_status LIKE stko_api02bom_status, stufe LIKE stpoxstufe, wegxx LIKE stpoxwegxx, posnr LIKE stpoxposnr, postp LIKE stpoxpostp, idnrk LIKE stpoxidnrk, potx1 LIKE stpoxpotx1, menge LIKE stpoxmenge, meins LIKE stpoxmeins, sortf LIKE stpoxsortf, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
9/124
3/21/2015
Gmail bom extend JCI program kodu
rvrel LIKE stpoxrvrel, END OF gt_bom_down. TYPES: BEGIN OF ty_bom_down1, matnr LIKE mastmatnr, posnr LIKE stpoxposnr, idnrk LIKE stpoxidnrk, potx1 LIKE stpoxpotx1, menge LIKE stpoxmenge, rvrel LIKE stpoxrvrel, sortf LIKE stpoxsortf, END OF ty_bom_down1. DATA: gt_bom_down1 TYPE TABLE OF ty_bom_down1, gs_bom_down1 TYPE ty_bom_down1. TYPES: BEGIN OF ty_mast, matnr TYPE mastmatnr, werks TYPE mastwerks, stlan TYPE mastwerks, stlal TYPE maststlal, END OF ty_mast. DATA: gt_mast TYPE TABLE OF ty_mast, gs_mast TYPE ty_mast. TYPES: BEGIN OF ty_bwkey, werks TYPE t001wwerks, bwkey TYPE t001wbwkey, END OF ty_bwkey. DATA: gt_bwkey TYPE TABLE OF ty_bwkey, gs_bwkey TYPE ty_bwkey. DATA: gt_mara_e TYPE TABLE OF ty_mara_e, gs_mara_e LIKE LINE OF gt_mara_e. DATA: gt_makt_e TYPE TABLE OF ty_makt_e, gs_makt_e LIKE LINE OF gt_makt_e. DATA: gt_marc_e TYPE TABLE OF marc, gs_marc_e LIKE LINE OF gt_marc_e. DATA: gt_target_plnt TYPE TABLE OF ty_target_plnt, gs_target_plnt LIKE LINE OF gt_target_plnt. DATA: gt_target_plnt_r TYPE TABLE OF ty_target_plnt, gs_target_plnt_r LIKE LINE OF gt_target_plnt_r. DATA: gs_alv_material LIKE LINE OF gt_alv_material. DATA: gs_clientdata LIKE bapi_mara, gs_clientdatax LIKE bapi_marax, gs_plantdata LIKE bapi_marc, gs_plantdatax LIKE bapi_marcx, gs_forecastparameters LIKE bapi_mpop, gs_forecastparametersx LIKE bapi_mpopx, gs_storagelocationdata LIKE bapi_mard, gs_storagelocationdatax LIKE bapi_mardx, gs_valuationdata LIKE bapi_mbew, gs_valuationdatax LIKE bapi_mbewx, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
10/124
3/21/2015
Gmail bom extend JCI program kodu
gs_salesdata LIKE bapi_mvke, gs_salesdatax LIKE bapi_mvkex, gs_warehousenumberdata LIKE bapi_mlgn, gs_warehousenumberdatax LIKE bapi_mlgnx. DATA: gt_prtdata TYPE TABLE OF bapi_mfhm, gs_prtdata TYPE bapi_mfhm, gt_prtdatax TYPE TABLE OF bapi_mfhmx, gt_unitsofmeasure TYPE TABLE OF bapi_marm, gs_unitsofmeasure TYPE bapi_marm, gt_unitsofmeasurex TYPE TABLE OF bapi_marmx, gt_intern TYPE TABLE OF bapi_mean, gs_intern TYPE bapi_mean, gt_materiallongtext TYPE TABLE OF bapi_mltx, gs_materiallongtext TYPE bapi_mltx, *** BEGIN OF INSERTION SAPP4840 gt_matlongtext TYPE TABLE OF bapi_mltx, gs_matlongtext TYPE bapi_mltx, *** END OF INSERTION SAPP4840 gt_taxclass TYPE TABLE OF bapi_mlan, gs_taxclass TYPE bapi_mlan, gs_clientdata1 LIKE bapi_mara_ga, gs_plantdata1 LIKE bapi_marc_ga, gs_forecastparameters1 LIKE bapi_mpop_ga, gs_storagelocationdata1 LIKE bapi_mard_ga, gs_valuationdata1 LIKE bapi_mbew_ga, gs_salesdata1 LIKE bapi_mvke_ga. RANGES: r_mat_ref FOR maramatnr. DATA: gt_stpo TYPE TABLE OF stpo_api02, gs_stpo TYPE stpo_api02, gt_stko TYPE TABLE OF stko_api02, gs_stko TYPE stko_api02, gt_stpu TYPE TABLE OF stpu_api01, gs_stpu TYPE stpu_api01. DATA: gt_stpo1 TYPE TABLE OF stpo_api01, gs_stpo1 TYPE stpo_api01, gs_stko1 TYPE stko_api01, gv_bom_no TYPE stko_api02bom_no. *Variables declarations DATA: gv_text TYPE theadtdname, gv_long(5000) TYPE c, gv_off_int(4) TYPE c, gv_str_len(4) TYPE c, gv_off_len(4) TYPE c, gv_str_flag TYPE c, gv_mess_type TYPE c, gv_repid TYPE syrepid, gv_down TYPE c, gv_doc_part TYPE zgtp2f_doc_revlvdoktl, gv_error TYPE c, gv_werks TYPE marcwerks. *Begin of insertion SAPP6202 DATA: gv_length TYPE i, gv_type(5) TYPE c. TYPES: BEGIN OF ty_mara_d, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
11/124
3/21/2015
Gmail bom extend JCI program kodu
matnr TYPE maramatnr, labor TYPE maralabor, END OF ty_mara_d. TYPES: BEGIN OF ty_, matnr TYPE maramatnr, doktl TYPE drawdoktl, dokvr TYPE drawdokvr, revlv TYPE cc_revlv, dktxt TYPE dratdktxt, olddir TYPE char30, link_n TYPE bapi_doc_compdocfile, END OF ty_. DATA: BEGIN OF gt_final OCCURS 0, sel, werks LIKE marcwerks, matnr LIKE maramatnr, dokar LIKE drawdokar, aennr LIKE aenraennr, doknr LIKE drawdoknr, doktl LIKE drawdoktl, dokvr LIKE drawdokvr, revlv LIKE tcc09revlv, olddir LIKE auspatwrt, labor LIKE maralabor, dokar_n LIKE drawdokar, doktl_n LIKE drawdoktl, dokvr_n LIKE drawdokvr, olddir_n LIKE auspatwrt, revlv_n LIKE tcc09revlv, dktxt_n LIKE dratdktxt, dappl LIKE drawdappl, link_n LIKE bapi_doc_compdocfile, sel1, END OF gt_final. DATA: BEGIN OF gt_final_output OCCURS 0, matnr LIKE maramatnr, dokar LIKE drawdokar, doknr LIKE drawdoknr, doktl LIKE drawdoktl, dokvr LIKE drawdokvr, aennr LIKE aenraennr, msg LIKE bapiret2message, END OF gt_final_output. DATA: gt_mara_dir TYPE TABLE OF ty_mara_d, gs_mara_dir TYPE ty_mara_d, gt_data_dir TYPE TABLE OF alsmex_tabline, gs_data_dir LIKE LINE OF gt_data_dir, gv_colm TYPE i, gt__dir TYPE TABLE OF ty_, gs__dir TYPE ty_, gt_doc_type TYPE TABLE OF zgtp2f_document_type, gs_doc_type LIKE LINE OF gt_doc_type, gt_doc TYPE TABLE OF zgtp2f_document_dur, gs_doc LIKE LINE OF gt_doc, gt_doc_final TYPE TABLE OF zgtp2f_document_dur, gt_fieldcat_dir TYPE slis_t_fieldcat_alv, gt_fieldcat_dir1 TYPE slis_t_fieldcat_alv, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
12/124
3/21/2015
Gmail bom extend JCI program kodu
gs_fieldcat_dir LIKE LINE OF gt_fieldcat_dir, gs_layout_dir TYPE slis_layout_alv, gv_select TYPE c, gv_newsel TYPE c, gt_revlv TYPE TABLE OF tcc09, gs_revlv TYPE tcc09, gv_labor TYPE maralabor. *End of insertion SAPP6202 *Constants Declarations CONSTANTS: gc_plant TYPE dfiesfieldname VALUE 'PLANT', gc_prog TYPE syrepid VALUE 'ZGTP2P_I_MATERIAL_IDOC_PLANTX', gc_dyn_fd TYPE help_infodynprofld VALUE 'P_PLANTM', gc_mestyp1 LIKE edidcmestyp VALUE 'ZGEP2P_MATMAS', gc_mestyp2 LIKE edidcmestyp VALUE 'ZGEP2F_BOMMAT', gc_idoctp1 LIKE edidcidoctp VALUE 'ZGEP2P_MATMAS01', gc_idoctp2 LIKE edidcidoctp VALUE 'ZGEP2F_BOMMAT01', gc_x TYPE c VALUE 'X', gc_mastseg TYPE ediddsegnam VALUE 'ZE1MASTM', gc_stposeg TYPE ediddsegnam VALUE 'ZE1STPOM', gc_maraseg TYPE ediddsegnam VALUE 'ZE2MARAM', gc_marcseg TYPE ediddsegnam VALUE 'ZE2MARCM', gc_maktseg TYPE ediddsegnam VALUE 'ZE2MAKTM', gc_mtxlseg TYPE ediddsegnam VALUE 'ZE2MTXLM', gc_icon(4) TYPE c VALUE 'ICON', gc_mess(7) TYPE c VALUE 'MESSAGE', gc_sel(3) TYPE c VALUE 'SEL', gc_docnum(6) TYPE c VALUE 'DOCNUM', gc_matnr(5) TYPE c VALUE 'MATNR', gc_werks(5) TYPE c VALUE 'WERKS', gc_m TYPE c VALUE 'M', gc_b TYPE c VALUE 'B', gc_e TYPE c VALUE 'E', gc_s TYPE c VALUE 'S', gc_500 TYPE i VALUE '500', gc_(5) TYPE c VALUE '', gc_stlan(7) TYPE c VALUE 'STLAN', gc_stlal(7) TYPE c VALUE 'STLAL', gc_ecm(3) TYPE c VALUE 'ECN', gc_bomuse(7) TYPE c VALUE 'BOMUSE', gc_mat_c(7) TYPE c VALUE 'MATNR_C', gc_l_matnr(11) TYPE c VALUE 'ZP2F_OLDMAT'. *Selection screenmain screen design SELECTIONSCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text001. SELECTIONSCREEN SKIP 1. PARAMETERS: r_materl RADIOBUTTON GROUP g1 DEFAULT 'X' COMMAND usr. *Begin of insertion SAPP6202 SELECTIONSCREEN: BEGIN OF LINE. PARAMETERS: r_plantx RADIOBUTTON GROUP g1. SELECTIONSCREEN COMMENT 3(78) text157. SELECTIONSCREEN: END OF LINE. PARAMETERS: r_doc RADIOBUTTON GROUP g1. *End of inclusion SAPP6202 SELECTIONSCREEN END OF BLOCK block1. *Selection sub screen for Material IDoc SELECTIONSCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text002. SELECTIONSCREEN SKIP 1. PARAMETERS: p_plantm TYPE char4 MODIF ID m1, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
13/124
3/21/2015
Gmail bom extend JCI program kodu
p_plants TYPE ty_marcwerks MODIF ID m1. SELECTOPTIONS: s_matnr FOR s_maramatnr MODIF ID m1, s_ecm FOR s_aenraennr MODIF ID m1, s_bomuse FOR s_maststlan MODIF ID m1. PARAMETERS: p_bom_a TYPE tc04capid MODIF ID m1 DEFAULT 'ZP05'. SELECTIONSCREEN SKIP 2. SELECTIONSCREEN COMMENT 1(50) text010 MODIF ID m1. PARAMETERS: p_matid TYPE c AS CHECKBOX DEFAULT 'X' MODIF ID m1 COMMAND flag. SELECTIONSCREEN: BEGIN OF LINE. SELECTIONSCREEN: POSITION 5. PARAMETERS: p_mat_in TYPE c AS CHECKBOX DEFAULT 'X' MODIF ID m1 COMMAND flag. SELECTIONSCREEN: COMMENT 7(36) text130 MODIF ID m1. SELECTIONSCREEN: END OF LINE. PARAMETERS: p_bomid TYPE c AS CHECKBOX DEFAULT 'X' MODIF ID m1 COMMAND flag, p_sub TYPE c AS CHECKBOX DEFAULT 'X' MODIF ID m1 COMMAND flag. SELECTIONSCREEN SKIP 1. SELECTIONSCREEN END OF BLOCK block2. *Selection Screen for Extension in SAP SELECTIONSCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE text003. SELECTIONSCREEN SKIP 1. PARAMETERS: p_plnt_e TYPE ty_marcwerks MODIF ID m2, p_plnt_t TYPE ty_marcwerks MODIF ID m2. SELECTOPTIONS: s_mats_e FOR s_maramatnr NO INTERVALS MODIF ID m2, s_ecm_e FOR s_aenraennr NO INTERVALS MODIF ID m2, s_bom_e FOR s_maststlan NO INTERVALS MODIF ID m2. PARAMETERS: p_ecm_t TYPE aenraennr MODIF ID m2. PARAMETERS: p_bom_t TYPE maststlan DEFAULT '2' MODIF ID m2. PARAMETERS: p_bom_st TYPE stkostlst MODIF ID m2. PARAMETERS: p_app_b TYPE tc04capid MODIF ID m2 DEFAULT 'ZP05'. *** BEGIN OF INSERTION SAPP4600 PARAMETERS: p_alt_d TYPE rc29adatuv MODIF ID m2. *** END OF INSERTION SAPP4600 SELECTIONSCREEN SKIP 2. SELECTIONSCREEN COMMENT 1(50) text011 MODIF ID m2. SELECTIONSCREEN: BEGIN OF LINE. SELECTIONSCREEN: POSITION 1. PARAMETERS: p_mat_e RADIOBUTTON GROUP g3 DEFAULT 'X' MODIF ID m2 COMMAND usr2. SELECTIONSCREEN COMMENT 3(25) text013 MODIF ID m2. SELECTIONSCREEN: POSITION 37. PARAMETERS: p_bom_e RADIOBUTTON GROUP g3 MODIF ID m2. SELECTIONSCREEN: COMMENT 39(30) text012 MODIF ID m2. SELECTIONSCREEN: POSITION 71. PARAMETERS: p_bom_p RADIOBUTTON GROUP g3 MODIF ID m2. SELECTIONSCREEN: COMMENT 73(35) text136 MODIF ID m2. SELECTIONSCREEN: END OF LINE. SELECTIONSCREEN: BEGIN OF LINE. SELECTIONSCREEN: POSITION 4. PARAMETERS:p_pltyp TYPE c AS CHECKBOX DEFAULT 'X' MODIF ID m2. SELECTIONSCREEN: COMMENT 6(30) text056 MODIF ID m2. SELECTIONSCREEN: POSITION 40. PARAMETERS:p_bom_s TYPE c RADIOBUTTON GROUP g2 MODIF ID m2. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
14/124
3/21/2015
Gmail bom extend JCI program kodu
SELECTIONSCREEN: COMMENT 42(30) text043 MODIF ID m2. SELECTIONSCREEN: END OF LINE. SELECTIONSCREEN: BEGIN OF LINE. SELECTIONSCREEN: POSITION 4. PARAMETERS:p_bom_in TYPE c AS CHECKBOX DEFAULT 'X' MODIF ID m2. SELECTIONSCREEN: COMMENT 6(33) text129 MODIF ID m2. SELECTIONSCREEN: POSITION 40. PARAMETERS:p_bom_m TYPE c RADIOBUTTON GROUP g2 DEFAULT 'X' MODIF ID m2. SELECTIONSCREEN: COMMENT 42(30) text044 MODIF ID m2. *** BEGIN OF INSERTION SAPP4600 SELECTIONSCREEN: END OF LINE. SELECTIONSCREEN: BEGIN OF LINE. SELECTIONSCREEN: POSITION 40. PARAMETERS:p_alt_c TYPE c AS CHECKBOX MODIF ID m2. SELECTIONSCREEN: COMMENT 42(30) text139 MODIF ID m2. *** END OF INSERTION SAPP4600 SELECTIONSCREEN: END OF LINE. SELECTIONSCREEN END OF BLOCK block3. SELECTIONSCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE text014. SELECTIONSCREEN SKIP 1. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text015 MODIF ID m5. SELECTIONSCREEN: COMMENT 20(18) text046 MODIF ID m5, COMMENT 42(8) text047 MODIF ID m5, COMMENT 52(9) text048 MODIF ID m5, COMMENT 62(4) text132 MODIF ID m5, COMMENT 69(8) text049 MODIF ID m5, COMMENT 79(12) text053 MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN SKIP 1. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text018 MODIF ID m5. SELECTIONSCREEN POSITION 20. PARAMETERS: p_fin_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_fin_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_fin_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_fin_d TYPE mvkevtweg MODIF ID m5. SELECTIONSCREEN POSITION 70. PARAMETERS: p_fin_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_fin_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text019 MODIF ID m5. SELECTIONSCREEN POSITION 20. PARAMETERS: p_pur_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_pur_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_pur_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_pur_d TYPE mvkevtweg MODIF ID m5. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
15/124
3/21/2015
Gmail bom extend JCI program kodu
SELECTIONSCREEN POSITION 70. PARAMETERS: p_pur_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_pur_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text020 MODIF ID m5. SELECTIONSCREEN POSITION 20. PARAMETERS: p_ref_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_ref_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_ref_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_ref_d TYPE mvkevtweg MODIF ID m5. SELECTIONSCREEN POSITION 70. PARAMETERS: p_ref_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_ref_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text021 MODIF ID m5. SELECTIONSCREEN POSITION 20. PARAMETERS: p_sub_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_sub_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_sub_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_sub_d TYPE mvkevtweg MODIF ID m5. SELECTIONSCREEN POSITION 70. PARAMETERS: p_sub_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_sub_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text022 MODIF ID m5. SELECTIONSCREEN POSITION 20. PARAMETERS: p_trd_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_trd_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_trd_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_trd_d TYPE mvkevtweg MODIF ID m5. SELECTIONSCREEN POSITION 70. PARAMETERS: p_trd_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_trd_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text059 MODIF ID m5. SELECTIONSCREEN POSITION 20. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
16/124
3/21/2015
Gmail bom extend JCI program kodu
PARAMETERS: p_ph_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_ph_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_ph_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_ph_d TYPE mvkevtweg MODIF ID m5. SELECTIONSCREEN POSITION 70. PARAMETERS: p_ph_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_ph_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 1(18) text060 MODIF ID m5. SELECTIONSCREEN POSITION 20. PARAMETERS: p_def_m TYPE maramatnr MODIF ID m5. SELECTIONSCREEN POSITION 43. PARAMETERS: p_def_sl TYPE marclgpro MODIF ID m5. SELECTIONSCREEN POSITION 53. PARAMETERS: p_def_so TYPE mvkevkorg MODIF ID m5. SELECTIONSCREEN POSITION 63. PARAMETERS: p_def_d TYPE mvkevtweg MODIF ID m5. SELECTIONSCREEN POSITION 70. PARAMETERS: p_def_v TYPE mbewbwkey MODIF ID m5. SELECTIONSCREEN POSITION 79. PARAMETERS: p_def_w TYPE mlgnlgnum MODIF ID m5. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN END OF BLOCK block4. SELECTIONSCREEN BEGIN OF BLOCK block5 WITH FRAME TITLE text057. PARAMETERS: p_path TYPE rlgrapfilename MODIF ID m2. SELECTIONSCREEN END OF BLOCK block5. *Begin of insertion SAPP6202 SELECTIONSCREEN BEGIN OF BLOCK block6 WITH FRAME TITLE text141. PARAMETERS: p_werks TYPE werks_d MODIF ID m6. PARAMETERS: p_ecm TYPE aenraennr MODIF ID m6. PARAMETERS: p_dokar TYPE drawdokar MODIF ID m6, p_doktl TYPE drawdoktl MODIF ID m6, p_labor TYPE maralabor MODIF ID m6, p_dappl TYPE drawdappl MODIF ID m6 DEFAULT 'URL'. SELECTOPTIONS: s_ecm_s FOR s_aenraennr NO INTERVALS MODIF ID m6. SELECTIONSCREEN: SKIP 1. SELECTOPTIONS: s_dirmat FOR s_maramatnr MODIF ID m6. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN POSITION 1. SELECTIONSCREEN: COMMENT 20(4) text147 MODIF ID m6. SELECTIONSCREEN END OF LINE. PARAMETERS: p_file TYPE rlgrapfilename MODIF ID m6. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN: COMMENT 1(70) text148 MODIF ID m6. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN: COMMENT 1(78) text158 MODIF ID m6. SELECTIONSCREEN END OF LINE. SELECTIONSCREEN BEGIN OF LINE. SELECTIONSCREEN: COMMENT 1(78) text159 MODIF ID m6. SELECTIONSCREEN END OF LINE. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
17/124
3/21/2015
Gmail bom extend JCI program kodu
SELECTIONSCREEN END OF BLOCK block6. *End of insertion SAPP6202 *Macro definition for building the Field catalog DEFINE mcat. clear gs_fieldcat. gs_fieldcatfieldname = &1. gs_fieldcatjust = 'C'. gs_fieldcatseltext = &2. gs_fieldcatcoltext = &3. append gs_fieldcat to gt_fieldcat. ENDOFDEFINITION. DEFINE mcat1. clear ls_int_head. ls_int_headfield1 = &1. append ls_int_head to lt_int_head. ENDOFDEFINITION. DEFINE mcat2. clear gs_fieldcat_bom. gs_fieldcat_bomfieldname = &1. gs_fieldcat_bomjust = 'C'. gs_fieldcat_bomseltext_l = &2. append gs_fieldcat_bom to gt_fieldcat_bom. ENDOFDEFINITION. DEFINE mcat3. clear gs_fieldcat_ext_bom. gs_fieldcat_ext_bomfieldname = &1. gs_fieldcat_ext_bomjust = 'C'. gs_fieldcat_ext_bomseltext_l = &2. append gs_fieldcat_ext_bom to gt_fieldcat_ext_bom. ENDOFDEFINITION. *********************************************************************** *Initialization *********************************************************************** INITIALIZATION. s_bomusesign = 'I'. s_bomuseoption = 'EQ'. s_bomuselow = '2'. APPEND s_bomuse. s_bom_esign = 'I'. s_bom_eoption = 'EQ'. s_bom_elow = '2'. APPEND s_bom_e. *********************************************************************** *To create dynamic selection screen *********************************************************************** AT SELECTIONSCREEN OUTPUT. IF p_mat_e EQ gc_x. CLEAR: p_bom_e,p_bom_p. ENDIF. IF p_bom_e EQ gc_x. CLEAR: p_mat_e,p_bom_p. ENDIF. IF p_bom_p EQ gc_x. CLEAR: p_mat_e,p_bom_e. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
18/124
3/21/2015
Gmail bom extend JCI program kodu
LOOP AT SCREEN. IF r_materl EQ gc_x. IF screengroup1 EQ 'M1'. screeninput = 1. screeninvisible = 0. ENDIF. IF screengroup1 EQ 'M2'. screeninput = 0. screeninvisible = 1. ENDIF. IF screengroup1 EQ 'M5'. screeninput = 0. screeninvisible = 1. ENDIF. IF p_bomid IS INITIAL. CLEAR : p_mat_in,p_sub. IF screengroup1 EQ 'M1' AND ( screenname '*P_MAT_IN*' OR screenname '*P_SUB*' OR screenname EQ '%C130019_1000' OR screenname '*P_BOM_A*' ). screenactive = 0. screeninvisible = 1. ENDIF. ENDIF. IF p_matid IS NOT INITIAL AND p_mat_in IS INITIAL AND p_bomid IS INITIAL AND p_sub IS INITIAL. IF screengroup1 EQ 'M1' AND screenname '*BOMUSE*'. screenactive = 0. screeninvisible = 1. ENDIF. ENDIF. *Begin of insertion SAPP6202 IF screengroup1 EQ 'M6'. screeninput = 0. screeninvisible = 1. ENDIF. *End of insertion SAPP6202 ELSEIF r_plantx EQ gc_x. IF screengroup1 EQ 'M1'. screeninput = 0. screeninvisible = 1. ENDIF. IF screengroup1 EQ 'M2'. screeninput = 1. screeninvisible = 0. ENDIF. IF p_bom_e IS NOT INITIAL. IF screengroup1 EQ 'M5'. screenactive = 0. screeninvisible = 1. ENDIF. ELSEIF p_bom_p IS NOT INITIAL. IF screengroup1 EQ 'M5'. screenactive = 0. screeninvisible = 1. ENDIF. IF screengroup1 EQ 'M2' AND https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
19/124
3/21/2015
Gmail bom extend JCI program kodu
( screenname '*P_BOM*T*' OR screenname '*P_ECM*T*' OR screenname '*P_APP*B*' OR screenname '*P_PATH*' OR screenname '*P_ALT_D*' ). "INS SAPP4600 screenactive = 0. screeninvisible = 1. ENDIF. ELSE. IF screengroup1 EQ 'M2' AND ( screenname '*P_BOM*T*' OR screenname '*P_ALT_D*' ). "INS SAPP4600 screenactive = 0. screeninvisible = 1. ENDIF. ENDIF. *Begin of insertion SAPP6202 IF screengroup1 EQ 'M6'. screenactive = 0. screeninvisible = 1. ENDIF. ELSE. IF screengroup1 EQ 'M1' OR screengroup1 EQ 'M2' OR screengroup1 EQ 'M3' OR screengroup1 EQ 'M4' OR screengroup1 EQ 'M5'. screenactive = 0. screeninvisible = 1. ENDIF. *End of insertion SAPP6202 ENDIF. MODIFY SCREEN. ENDLOOP. ********************************************************************** *F4 help for to select MAPICS plant ********************************************************************** AT SELECTIONSCREEN ON VALUEREQUEST FOR p_plantm. *Select the entries from zgtp2p_map_plant REFRESH: gt_map_plant[]. SELECT * FROM zgtp2p_map_plant INTO TABLE gt_map_plant. *Call the F4 help FM CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = gc_plant dynpprog = gc_prog dynpnr = '100' dynprofield = gc_dyn_fd value_org = 'S' TABLES value_tab = gt_map_plant EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3. IF sysubrc <> 0. MESSAGE ID symsgid TYPE symsgty NUMBER symsgno WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
20/124
3/21/2015
Gmail bom extend JCI program kodu
AT SELECTIONSCREEN ON VALUEREQUEST FOR p_path. CALL FUNCTION 'F4_FILENAME' EXPORTING program_name = systrog dynpro_number = systdynnr field_name = 'P_PATH' IMPORTING file_name = p_path. *Begin of insertion SAPP6202 AT SELECTIONSCREEN ON VALUEREQUEST FOR p_file. CALL FUNCTION 'F4_FILENAME' EXPORTING program_name = systrog dynpro_number = systdynnr field_name = 'P_FILE' IMPORTING file_name = p_file. *End of insertion SAPP6202 ******************************************************************** *Start of Selection STARTOFSELECTION. ******************************************************************** *If interface option is selected then proceed with the IDoc IF r_materl EQ gc_x. *Plant Validations for SAP Plant and MAPICS Plant IF p_plantm IS INITIAL. MESSAGE text009 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_plants IS INITIAL. MESSAGE text008 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. *Material and ECM validations IF s_matnr IS INITIAL AND s_ecm IS INITIAL. MESSAGE text004 TYPE gc_s DISPLAY LIKE gc_e . EXIT. ENDIF. * should select atleast one option IF p_matid IS INITIAL AND p_bomid IS INITIAL AND p_sub IS INITIAL. MESSAGE text007 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. *Error message for BOM usage IF p_bomid IS NOT INITIAL OR p_sub IS NOT INITIAL. IF s_bomuse IS INITIAL. MESSAGE text038 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. *Error message for BOM application IF p_bomid IS NOT INITIAL OR p_sub IS NOT INITIAL. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
21/124
3/21/2015
Gmail bom extend JCI program kodu
IF p_bom_a IS INITIAL. MESSAGE text131 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. *Auth check for plant IF p_matid EQ gc_x. CLEAR: gv_werks. SELECT SINGLE werks FROM t001w INTO gv_werks WHERE werks = p_plants. IF sysubrc = 0. AUTHORITYCHECK OBJECT 'M_MATE_WRK' ID 'ACTVT' FIELD '03' ID 'WERKS' FIELD gv_werks. IF sysubrc <> 0. MESSAGE e021 WITH p_plants. ENDIF. ELSE. MESSAGE e022 WITH p_plants. ENDIF. ENDIF. IF p_sub EQ gc_x OR p_bomid EQ gc_x . CLEAR: gv_werks. SELECT SINGLE werks FROM t001w INTO gv_werks WHERE werks = p_plants. IF sysubrc = 0. AUTHORITYCHECK OBJECT 'C_STUE_WRK' ID 'ACTVT' FIELD '03' ID 'CSWRK' FIELD gv_werks. IF sysubrc <> 0. MESSAGE e021 WITH p_plants. ENDIF. ELSE. MESSAGE e022 WITH p_plants. ENDIF. ENDIF. *If Material interface IDoc is selected, then follow these steps IF p_matid EQ gc_x. REFRESH: gt_edidd[], gt_edidc[]. CLEAR: gs_edidc, gv_mess_type. *Populate control record for Material gv_mess_type = gc_m. PERFORM generate_control_record. PERFORM populate_data_record_mat. ENDIF. IF p_sub EQ gc_x OR p_bomid EQ gc_x . REFRESH: gt_edidd[], gt_edidc[]. CLEAR: gs_edidc, gv_mess_type. *Populate control record for BOM gv_mess_type = gc_b. PERFORM generate_control_record. PERFORM populate_data_record_bom. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
22/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. *To display ALV GRID IF gt_messages[] IS NOT INITIAL. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv. ENDIF. ENDIF. IF r_plantx EQ gc_x. REFRESH: gt_messages[]. *Plant Validations for SAP source and Target Plant IF p_plnt_e IS INITIAL. MESSAGE text023 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_plnt_t IS INITIAL. MESSAGE text024 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. *Material validation IF s_mats_e IS INITIAL AND s_ecm_e IS INITIAL. MESSAGE text004 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_bom_e EQ gc_x OR p_bom_p EQ gc_x. IF s_bom_e IS INITIAL. MESSAGE text042 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_ecm_t IS INITIAL. MESSAGE text052 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. *** BEGIN OF INSERTION SAPP4600 IF p_bom_e EQ gc_x. IF p_alt_c IS NOT INITIAL AND p_alt_d IS NOT INITIAL AND p_ecm_t IS NOT INITIAL. REFRESH: gt_aedt. SELECT * FROM aedt INTO TABLE gt_aedt WHERE aennr = p_ecm_t AND datuv = p_alt_d. IF sysubrc NE 0. MESSAGE text140 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. ENDIF. *** END OF INSERTION SAPP4600 *Auth Object check for Plant https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
23/124
3/21/2015
Gmail bom extend JCI program kodu
IF p_mat_e EQ gc_x. CLEAR: gv_werks. SELECT SINGLE werks FROM t001w INTO gv_werks WHERE werks = p_plnt_t. IF sysubrc = 0. AUTHORITYCHECK OBJECT 'M_MATE_WRK' ID 'ACTVT' FIELD '01' ID 'WERKS' FIELD gv_werks. IF sysubrc <> 0. AUTHORITYCHECK OBJECT 'M_MATE_WRK' ID 'ACTVT' FIELD '02' ID 'WERKS' FIELD gv_werks. IF sysubrc <> 0. MESSAGE e021 WITH p_plnt_t. ENDIF. ENDIF. ELSE. MESSAGE e022 WITH p_plnt_t. ENDIF. ENDIF. IF p_bom_e EQ gc_x OR p_bom_p EQ gc_x. CLEAR: gv_werks. SELECT SINGLE werks FROM t001w INTO gv_werks WHERE werks = p_plnt_t. IF sysubrc = 0. AUTHORITYCHECK OBJECT 'C_STUE_WRK' ID 'ACTVT' FIELD '01' ID 'CSWRK' FIELD gv_werks. IF sysubrc <> 0. AUTHORITYCHECK OBJECT 'C_STUE_WRK' ID 'ACTVT' FIELD '02' ID 'CSWRK' FIELD gv_werks. IF sysubrc <> 0. MESSAGE e021 WITH p_plnt_t. ENDIF. ENDIF. ELSE. MESSAGE e022 WITH p_plnt_t. ENDIF. ENDIF. *Logic to extend the material to a plant IF p_mat_e EQ gc_x. IF p_bom_in EQ gc_x. IF s_bom_e IS INITIAL. MESSAGE text042 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. IF p_bom_in EQ gc_x. IF p_app_b IS INITIAL. MESSAGE text131 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. PERFORM fetch_marc_data. PERFORM populate_final_alv_table. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
24/124
3/21/2015
Gmail bom extend JCI program kodu
*logic to extend the BOM IF p_bom_e EQ gc_x. IF p_app_b IS INITIAL. MESSAGE text131 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. PERFORM extend_bom_to_target_plant. ENDIF. *logic for plant assignment to BOM IF p_bom_p EQ gc_x. PERFORM assign_bom_to_target_plant. ENDIF. ENDIF. *Begin of insertion SAPP6202 IF r_doc EQ gc_x. IF p_werks IS INITIAL. MESSAGE text142 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. CLEAR: gv_werks. SELECT SINGLE werks FROM t001w INTO gv_werks WHERE werks = p_werks. IF sysubrc = 0. AUTHORITYCHECK OBJECT 'M_MATE_WRK' ID 'ACTVT' FIELD '01' ID 'WERKS' FIELD gv_werks. IF sysubrc <> 0. AUTHORITYCHECK OBJECT 'M_MATE_WRK' ID 'ACTVT' FIELD '02' ID 'WERKS' FIELD gv_werks. IF sysubrc <> 0. MESSAGE text143 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. ELSE. MESSAGE s022 WITH p_werks DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_ecm IS INITIAL. MESSAGE text145 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_dokar IS INITIAL. MESSAGE text146 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_labor IS INITIAL. MESSAGE text161 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ELSE. CLEAR: gv_labor. SELECT SINGLE labor FROM t024l INTO gv_labor https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
25/124
3/21/2015
Gmail bom extend JCI program kodu
WHERE labor EQ p_labor. IF sysubrc NE 0. MESSAGE text162 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. IF s_dirmat IS INITIAL AND p_file IS INITIAL AND s_ecm_s IS INITIAL. MESSAGE text144 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF s_dirmat IS NOT INITIAL AND p_file IS NOT INITIAL. MESSAGE text144 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF p_file IS NOT INITIAL. gv_length = STRLEN( p_file ). gv_length = gv_length 4. WRITE p_file+gv_length(4) TO gv_type. TRANSLATE gv_type TO UPPER CASE. IF gv_type NS 'XLS'. MESSAGE text150 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDIF. PERFORM f_data_retrieval. ENDIF. *End of insertion SAPP6202 *&* *& Form GENERATE_CONTROL_RECORD *&* * text ** * > p1 text * < p2 text ** FORM generate_control_record . DATA lv_send TYPE c. *Populate the control records IF gv_mess_type EQ gc_m. *Populate message type and IDoc type for Material Idoc gs_edidcmestyp = gc_mestyp1. "Message type gs_edidcidoctp = gc_idoctp1. "Basic IDOC type * Check if an IDoc has to be created, read the distribution model CALL FUNCTION 'ALE_MODEL_DETERMINE_IF_TO_SEND' EXPORTING message_type = gc_mestyp1 IMPORTING idoc_must_be_sent = lv_send EXCEPTIONS own_system_not_defined = 1 OTHERS = 2. IF sysubrc NE 0 OR lv_send IS INITIAL. * no message flow maintained in the model, nothing to do https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
26/124
3/21/2015
Gmail bom extend JCI program kodu
EXIT. ENDIF. ELSEIF gv_mess_type EQ gc_b. *Populate message type and Idoc type for BOM Idoc gs_edidcmestyp = gc_mestyp2. "Message type gs_edidcidoctp = gc_idoctp2. "Basic IDOC type * Check if an IDoc has to be created, read the distribution model CALL FUNCTION 'ALE_MODEL_DETERMINE_IF_TO_SEND' EXPORTING message_type = gc_mestyp2 IMPORTING idoc_must_be_sent = lv_send EXCEPTIONS own_system_not_defined = 1 OTHERS = 2. IF sysubrc NE 0 OR lv_send IS INITIAL. * no message flow maintained in the model, nothing to do EXIT. ENDIF. ENDIF. ENDFORM. " GENERATE_CONTROL_RECORD *&* *& Form SEND_IDOC *&* * text ** * > p1 text * < p2 text ** FORM send_idoc." USING p_matnr. *To send Idoc CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' EXPORTING master_idoc_control = gs_edidc * OBJ_TYPE = '' * CHNUM = '' TABLES communication_idoc_control = gt_edidc master_idoc_data = gt_edidd EXCEPTIONS error_in_idoc_control = 1 error_writing_idoc_status = 2 error_in_idoc_data = 3 sending_logical_system_unknown = 4 OTHERS = 5. IF sysubrc <> 0. LOOP AT gt_allmat INTO gs_allmat. CLEAR:gs_messages. gs_messagesmatnr = gs_allmatmatnr. gs_messageszp2f_oldmat = gs_allmatl_matnr. gs_messagesicon = '@0A@'. gs_messageswerks = p_plants. IF gv_mess_type EQ gc_m. gs_messagesmessage = text030. ELSE. gs_messagesmessage = text031. ENDIF. APPEND gs_messages TO gt_messages. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
27/124
3/21/2015
Gmail bom extend JCI program kodu
ENDLOOP. REFRESH: gt_allmat. ELSE. COMMIT WORK AND WAIT. CALL FUNCTION 'DEQUEUE_ALL' EXPORTING _synchron = 'E'. *To the final output CLEAR:gs_messages. READ TABLE gt_edidc INTO gs1_edidc INDEX 1. IF sysubrc EQ 0. LOOP AT gt_allmat INTO gs_allmat. gs_messageswerks = p_plants. gs_messagesdocnum = gs1_edidcdocnum. gs_messagesmatnr = gs_allmatmatnr. gs_messageszp2f_oldmat = gs_allmatl_matnr. IF gs1_edidcstatus EQ '02' OR gs1_edidcstatus EQ '04' OR gs1_edidcstatus EQ '05' OR gs1_edidcstatus EQ '26' OR gs1_edidcstatus EQ '29' OR gs1_edidcstatus EQ '31' OR gs1_edidcstatus EQ '37' OR gs1_edidcstatus EQ '51' OR gs1_edidcstatus EQ '56' OR gs1_edidcstatus EQ '60' OR gs1_edidcstatus EQ '61' OR gs1_edidcstatus EQ '63' OR gs1_edidcstatus EQ '65'. gs_messagesicon = '@0A@'. IF gv_mess_type EQ gc_m. gs_messagesmessage = text034. ELSE. gs_messagesmessage = text035. ENDIF. ELSE. gs_messagesicon = '@08@'. IF gv_mess_type EQ gc_m. gs_messagesmessage = text032. ELSE. gs_messagesmessage = text033. ENDIF. ENDIF. APPEND gs_messages TO gt_messages. ENDLOOP. REFRESH: gt_allmat. ENDIF. ENDIF. REFRESH: gt_edidc, gt_allmat.. ENDFORM. " SEND_IDOC *&* *& Form POPULATE_DATA_RECORD *&* * text ** * > p1 text * < p2 text ** FORM populate_data_record_mat. DATA: lv_mcount TYPE i, lv_atnam TYPE zgtp2f_plantcharatnam, lv_atinn TYPE auspatinn, lv_objkt TYPE aeoiobjkt, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
28/124
3/21/2015
Gmail bom extend JCI program kodu
lv_aennr TYPE aenraennr, lv_revlv TYPE aeoirevlv, lv_atinn_old TYPE auspatinn, lv_count_dwg TYPE i, lv_dwg TYPE c, lv_multi TYPE c, lv_rest(9999) TYPE c, "INS SAPP5375 lv_strlen TYPE i. "INS SAPP5375 *** BEGIN OF INSERTION SAPP4600 DATA : lt_class TYPE STANDARD TABLE OF sclass, lt_objectdata TYPE STANDARD TABLE OF clobjdat. DATA : ls_objectdata TYPE clobjdat, lv_objek TYPE auspobjek. CONSTANTS : lc_ques TYPE c VALUE '?', lc_class TYPE klahclass VALUE 'ECM_LEGACY_ECN', lc_klart TYPE klahklart VALUE '025', lc_obtab TYPE tclaobtab VALUE 'AENR'. *** END OF INSERTION SAPP4600 REFRESH: gt_aeoi, gt_marc, gt_mara, gt_makt, gt_drad_draw, gt_ausp, gt_cdhdr. *Select data from AEOI table for the input ECM IF s_ecm IS NOT INITIAL. SELECT aennr objkt revlv FROM aeoi INTO TABLE gt_aeoi WHERE aetyp = '41' AND aennr IN s_ecm. IF gt_aeoi[] IS NOT INITIAL. *To get the latest version SORT gt_aeoi DESCENDING. DELETE ADJACENT DUPLICATES FROM gt_aeoi COMPARING aennr objkt. ENDIF. ENDIF. *Select the required data from MARC, if material number and ecm number *given IF s_matnr IS NOT INITIAL. *If you get data from AEOI, then fetch the data from MARC IF gt_aeoi[] IS NOT INITIAL. SELECT matnr werks beskz zptyp ausme sobsl zp2f_oldmat FROM marc INTO TABLE gt_marc FOR ALL ENTRIES IN gt_aeoi WHERE matnr = gt_aeoiobjkt AND werks = p_plants AND matnr IN s_matnr. ENDIF. *If ecm number is initial then use only material number IF s_ecm IS INITIAL. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
29/124
3/21/2015
Gmail bom extend JCI program kodu
SELECT matnr werks beskz zptyp ausme sobsl zp2f_oldmat FROM marc INTO TABLE gt_marc WHERE werks = p_plants AND matnr IN s_matnr. ENDIF. ELSE. *If material number is initial IF gt_aeoi[] IS NOT INITIAL. SELECT matnr werks beskz zptyp ausme sobsl zp2f_oldmat FROM marc INTO TABLE gt_marc FOR ALL ENTRIES IN gt_aeoi WHERE matnr = gt_aeoiobjkt AND werks = p_plants. ENDIF. ENDIF. *Logic to check BOM compoents to include in the Material IDoc IF p_sub EQ gc_x OR p_bomid EQ gc_x . IF p_mat_in EQ gc_x. REFRESH: gt_aeoi_bom. *Get the BOM related objects from AEOI IF s_ecm IS NOT INITIAL. SELECT aennr objkt FROM aeoi INTO CORRESPONDING FIELDS OF TABLE gt_aeoi_bom WHERE aetyp = '02' AND aennr IN s_ecm. ENDIF. *To remove M from the objkt key LOOP AT gt_aeoi_bom INTO gs_aeoi_bom. gs_aeoi_bomstlnr = gs_aeoi_bomobjkt+1(8). MODIFY gt_aeoi_bom FROM gs_aeoi_bom. ENDLOOP. *To get MATNR and STLAN details from MAST . REFRESH: gt_bom_final. IF gt_aeoi_bom[] IS NOT INITIAL. SELECT a~matnr a~stlan b~zp2f_oldmat a~matnr INTO TABLE gt_bom_final FROM mast AS a INNER marc AS b ON a~matnr = b~matnr AND a~werks = b~werks https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
30/124
3/21/2015
Gmail bom extend JCI program kodu
FOR ALL ENTRIES IN gt_aeoi_bom WHERE a~stlnr = gt_aeoi_bomstlnr AND a~werks = p_plants AND a~matnr IN s_matnr AND a~stlan IN s_bomuse. ELSEIF s_matnr IS NOT INITIAL. SELECT a~matnr a~stlan b~zp2f_oldmat a~matnr INTO TABLE gt_bom_final FROM mast AS a INNER marc AS b ON a~matnr = b~matnr AND a~werks = b~werks WHERE a~werks = p_plants AND a~matnr IN s_matnr AND a~stlan IN s_bomuse. ENDIF. IF gt_bom_final IS NOT INITIAL. SORT gt_bom_final. DELETE ADJACENT DUPLICATES FROM gt_bom_final COMPARING ALL FIELDS. ENDIF. *Get multi level BOm components IF p_sub EQ gc_x. lv_multi = gc_x. ELSE. CLEAR: lv_multi. ENDIF. *To get BOM components in Multi levels REFRESH: gt_stb_mat. LOOP AT gt_bom_final INTO gs_bom_final. REFRESH: gt_stb. *Call FM to get multi level BOM explosion CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING aumgb = 'X' capid = p_bom_a datuv = sydatum ehndl = '1' mbwls = 'X' mehrs = lv_multi mmory = '1' mtnrv = gs_bom_finalmatnr werks = p_plants vrsvo = 'X' stlan = gs_bom_finalstlan * IMPORTING * topmat = TABLES stb = gt_stb * matcat = EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
31/124
3/21/2015
Gmail bom extend JCI program kodu
no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. APPEND LINES OF gt_stb TO gt_stb_mat. ENDLOOP. *Select data from MARC table for all the components IF gt_stb_mat[] IS NOT INITIAL. SORT gt_stb_mat BY idnrk. DELETE ADJACENT DUPLICATES FROM gt_stb_mat COMPARING idnrk. SELECT matnr werks beskz zptyp ausme sobsl zp2f_oldmat FROM marc APPENDING TABLE gt_marc FOR ALL ENTRIES IN gt_stb_mat WHERE matnr = gt_stb_matidnrk AND werks = p_plants. ENDIF. ENDIF. ENDIF. IF gt_marc[] IS NOT INITIAL. SORT gt_marc. DELETE ADJACENT DUPLICATES FROM gt_marc COMPARING ALL FIELDS. *Get mara data for all entries in MARC SELECT matnr mtart meins brgew gewei zzglat datab kzumw matnr FROM mara INTO TABLE gt_mara FOR ALL ENTRIES IN gt_marc WHERE matnr = gt_marcmatnr. IF gt_mara[] IS NOT INITIAL. SORT gt_mara. DELETE ADJACENT DUPLICATES FROM gt_mara COMPARING ALL FIELDS. *Fetching Latest ECM number for all Materials CLEAR: lv_atnam. SELECT SINGLE atnam https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
32/124
3/21/2015
Gmail bom extend JCI program kodu
FROM zgtp2f_plantchar INTO lv_atnam WHERE werks = p_plants. REFRESH gt_matnr_tmp[]. CLEAR: gs_matnr_tmp,gs_mara. LOOP AT gt_mara INTO gs_mara. gs_matnr_tmpobjkt = gs_maramatnr1. APPEND gs_matnr_tmp TO gt_matnr_tmp. CLEAR: gs_matnr_tmp,gs_mara. ENDLOOP. REFRESH gt_aeoi_tmp[]. SELECT aennr aetyp objkt andat FROM aeoi INTO TABLE gt_aeoi_tmp FOR ALL ENTRIES IN gt_matnr_tmp WHERE aetyp EQ '41' AND objkt EQ gt_matnr_tmpobjkt. IF sysubrc EQ 0. SORT gt_aeoi_tmp BY objkt aennr andat DESCENDING. ENDIF. IF s_ecm IS NOT INITIAL. LOOP AT gt_mara INTO gs_mara. READ TABLE gt_aeoi INTO gs_aeoi WITH KEY objkt = gs_maramatnr. IF sysubrc EQ 0. gs_maraecm = gs_aeoiaennr. gs_maraecm1 = gs_aeoiaennr. ENDIF. MODIFY gt_mara FROM gs_mara. ENDLOOP. ELSE. CLEAR gs_mara. LOOP AT gt_mara INTO gs_mara. CLEAR gs_aeoi_tmp. READ TABLE gt_aeoi_tmp INTO gs_aeoi_tmp WITH KEY objkt = gs_maramatnr. IF sysubrc EQ 0. gs_maraecm = gs_aeoi_tmpaennr. gs_maraecm1 = gs_aeoi_tmpaennr. ENDIF. MODIFY gt_mara FROM gs_mara. CLEAR:gs_mara,gs_aeoi_tmp. ENDLOOP. ENDIF. *Get the values from INOB table, *For CODE INSPECTOR Message: we can't give cuobj in where condition *because we are fetching cuobj as a result SELECT cuobj objek FROM inob INTO TABLE gt_inob FOR ALL ENTRIES IN gt_mara WHERE klart = '025' AND objek = gt_maraecm. IF sysubrc EQ 0. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
33/124
3/21/2015
Gmail bom extend JCI program kodu
DELETE ADJACENT DUPLICATES FROM gt_inob COMPARING ALL FIELDS. ENDIF. *Getting ECM characteristics CLEAR lv_atinn. CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT' EXPORTING input = lv_atnam IMPORTING output = lv_atinn. IF gt_inob[] IS NOT INITIAL. REFRESH: gt_ecm_ausp. SELECT objek atinn atwrt FROM ausp INTO TABLE gt_ecm_ausp FOR ALL ENTRIES IN gt_inob WHERE objek = gt_inobcuobj AND atinn = lv_atinn AND klart = '025'. ENDIF. REFRESH: gt_aenr. SELECT aennr datuv FROM aenr INTO TABLE gt_aenr FOR ALL ENTRIES IN gt_mara WHERE aennr = gt_maraecm1. *Get MAKTX data for all entries in MARA SELECT matnr maktx spras FROM makt INTO TABLE gt_makt FOR ALL ENTRIES IN gt_marc WHERE matnr = gt_marcmatnr. IF sysubrc EQ 0. SORT gt_makt. ENDIF. *This logic is to populate Revision level SELECT * FROM zgtp2f_doc_revlv INTO TABLE gt_doc_part WHERE werks = p_plants. IF sysubrc EQ 0. SORT gt_doc_part ASCENDING BY zprio. READ TABLE gt_doc_part INTO gs_doc_part INDEX 1. gv_doc_part = gs_doc_partdoktl. ELSE. gv_doc_part = 'GBL'. ENDIF. *Fetch ATWRT , Use DRAD, DRAW and AUSP tables SELECT a~dokar a~doknr a~dokvr a~doktl a~dokob https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
34/124
3/21/2015
Gmail bom extend JCI program kodu
a~obzae a~objky b~dokst INTO TABLE gt_drad_draw FROM drad AS a INNER draw AS b ON a~dokar = b~dokar AND a~doknr = b~doknr AND a~dokvr = b~dokvr AND a~doktl = b~doktl FOR ALL ENTRIES IN gt_mara WHERE a~doktl = gv_doc_part AND a~dokob = 'MARA' AND a~objky = gt_maramatnr AND a~delflag <> 'X' AND b~dokst = 'RL' AND a~dokar = 'MRL' . IF gt_drad_draw[] IS NOT INITIAL. SORT gt_drad_draw DESCENDING BY objky dokvr doknr . DELETE ADJACENT DUPLICATES FROM gt_drad_draw COMPARING objky doknr. *Populate OBJNUM field to get data from AUSP LOOP AT gt_drad_draw INTO gs_drad_draw. CONCATENATE gs_drad_drawdokar gs_drad_drawdoknr gs_drad_drawdokvr gs_drad_drawdoktl INTO gs_drad_drawobjnum. CONDENSE gs_drad_drawobjnum NOGAPS. MODIFY gt_drad_draw FROM gs_drad_draw. ENDLOOP. ENDIF. REFRESH: gt_drad_draw_new. SELECT a~dokar a~doknr a~dokvr a~doktl a~dokob a~obzae a~objky b~dokst b~aennr INTO TABLE gt_drad_draw_new FROM drad AS a INNER draw AS b ON a~dokar = b~dokar AND a~doknr = b~doknr AND a~dokvr = b~dokvr AND a~doktl = b~doktl FOR ALL ENTRIES IN gt_mara WHERE a~doktl = gv_doc_part AND a~dokob = 'MARA' AND a~objky = gt_maramatnr AND a~delflag <> 'X' AND b~dokst = 'RL' AND a~dokar = 'MRL' . *Populate OBJNUM field to get data from AUSP SORT gt_drad_draw_new DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_new COMPARING objky doknr. LOOP AT gt_drad_draw_new INTO gs_drad_draw_new. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
35/124
3/21/2015
Gmail bom extend JCI program kodu
CONCATENATE gs_drad_draw_newdokar gs_drad_draw_newdoknr gs_drad_draw_newdoktl gs_drad_draw_newdokvr INTO gs_drad_draw_newobjnum. CONDENSE gs_drad_draw_newobjnum NOGAPS. MODIFY gt_drad_draw_new FROM gs_drad_draw_new. ENDLOOP. *Populate ATWRT CLEAR lv_atinn_old. CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT' EXPORTING input = 'OLDDIRNUMBER' IMPORTING output = lv_atinn_old. REFRESH: gt_drad_draw_dwg. SELECT a~dokar a~doknr a~dokvr a~doktl a~dokob a~obzae a~objky b~dokst b~aennr INTO TABLE gt_drad_draw_dwg FROM drad AS a INNER draw AS b ON a~dokar = b~dokar AND a~doknr = b~doknr AND a~dokvr = b~dokvr AND a~doktl = b~doktl FOR ALL ENTRIES IN gt_mara WHERE a~doktl = gv_doc_part AND a~dokob = 'MARA' AND a~objky = gt_maramatnr AND a~delflag <> 'X' AND b~dokst = 'RL' AND a~dokar = 'DWG' . IF gt_drad_draw_dwg[] IS NOT INITIAL. SORT gt_drad_draw_dwg DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_dwg COMPARING objky doknr. *Populate OBJNUM field to get data from AUSP LOOP AT gt_drad_draw_dwg INTO gs_drad_draw_dwg. CONCATENATE gs_drad_draw_dwgdokar gs_drad_draw_dwgdoknr gs_drad_draw_dwgdokvr gs_drad_draw_dwgdoktl INTO gs_drad_draw_dwgobjnum. CONDENSE gs_drad_draw_dwgobjnum NOGAPS. MODIFY gt_drad_draw_dwg FROM gs_drad_draw_dwg. ENDLOOP. SELECT objek klart atwrt FROM ausp INTO TABLE gt_ausp_dwg FOR ALL ENTRIES IN gt_drad_draw_dwg WHERE objek = gt_drad_draw_dwgobjnum https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
36/124
3/21/2015
Gmail bom extend JCI program kodu
AND klart = '017' AND atinn = lv_atinn_old. SELECT doknr dktxt FROM drat INTO TABLE gt_drat FOR ALL ENTRIES IN gt_drad_draw_dwg WHERE dokar = gt_drad_draw_dwgdokar AND doknr = gt_drad_draw_dwgdoknr AND dokvr = gt_drad_draw_dwgdokvr AND doktl = gt_drad_draw_dwgdoktl. ENDIF. *Populate ENGSTD SELECT a~dokar a~doknr a~dokvr a~doktl a~dokob a~obzae a~objky b~dokst b~aennr INTO TABLE gt_drad_draw_std FROM drad AS a INNER draw AS b ON a~dokar = b~dokar AND a~doknr = b~doknr AND a~dokvr = b~dokvr AND a~doktl = b~doktl FOR ALL ENTRIES IN gt_mara WHERE a~doktl = gv_doc_part AND a~dokob = 'MARA' AND a~objky = gt_maramatnr AND a~delflag <> 'X' AND b~dokst = 'RL' AND a~dokar = 'STD' . IF gt_drad_draw_std[] IS NOT INITIAL. SORT gt_drad_draw_std DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_std COMPARING objky doknr. *Populate OBJNUM field to get data from AUSP LOOP AT gt_drad_draw_std INTO gs_drad_draw_std. CONCATENATE gs_drad_draw_stddokar gs_drad_draw_stddoknr gs_drad_draw_stddokvr gs_drad_draw_stddoktl INTO gs_drad_draw_stdobjnum. CONDENSE gs_drad_draw_stdobjnum NOGAPS. MODIFY gt_drad_draw_std FROM gs_drad_draw_std. ENDLOOP. SELECT objek klart atwrt FROM ausp INTO TABLE gt_ausp_std FOR ALL ENTRIES IN gt_drad_draw_std WHERE objek = gt_drad_draw_stdobjnum AND klart = '017' AND atinn = lv_atinn_old. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
37/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. ENDIF. ENDIF. *Error message when no data found IF gt_mara[] IS INITIAL. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmessage = text036. APPEND gs_messages TO gt_messages. ENDIF. CLEAR: gs_mara, gs_ediddsegnum, lv_mcount. LOOP AT gt_mara INTO gs_mara. CLEAR: gs_maraseg, gs_marcseg, gs_maktseg. gs_marasegmtart = gs_maramtart. gs_marasegmeins = gs_marameins. gs_marasegbrgew = gs_marabrgew. gs_maraseggewei = gs_maragewei. gs_marasegzzglat = gs_marazzglat. gs_marasegkzumw = gs_marakzumw. *Logic to populate ZLECN READ TABLE gt_inob INTO gs_inob WITH KEY objek = gs_maraecm. IF sysubrc EQ 0. READ TABLE gt_ecm_ausp INTO gs_ecm_ausp WITH KEY objek = gs_inobcuobj. IF sysubrc EQ 0. gs_marasegzlecn = gs_ecm_auspatwrt. ENDIF. ENDIF. *Logic to populate DATUV READ TABLE gt_aenr INTO gs_aenr WITH KEY aennr = gs_maraecm. IF sysubrc EQ 0. gs_marasegdatuv = gs_aenrdatuv. ENDIF. *Logic to populate Revision Level REFRESH: gt_drad_draw_new1, gt_aenr_doc. CLEAR: lv_aennr, lv_objkt, lv_revlv. LOOP AT gt_drad_draw_new INTO gs_drad_draw_new WHERE objky = gs_maramatnr. APPEND gs_drad_draw_new TO gt_drad_draw_new1. ENDLOOP. IF gt_drad_draw_new1[] IS NOT INITIAL. SELECT aennr datuv FROM aenr INTO TABLE gt_aenr_doc FOR ALL ENTRIES IN gt_drad_draw_new1 WHERE aennr = gt_drad_draw_new1aennr. ENDIF. SORT gt_aenr_doc BY datuv DESCENDING. CLEAR: gs_aenr_doc. READ TABLE gt_aenr_doc INTO gs_aenr_doc INDEX 1. lv_aennr = gs_aenr_docaennr. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
38/124
3/21/2015
Gmail bom extend JCI program kodu
READ TABLE gt_drad_draw_new INTO gs_drad_draw_new WITH KEY objky = gs_maramatnr aennr = lv_aennr. IF sysubrc EQ 0. lv_objkt = gs_drad_draw_newobjnum. ENDIF. *CODE INSPECTOR Message: We can't avoid this Select query, it should *come inside the loop endloop only SELECT SINGLE revlv FROM aeoi INTO lv_revlv WHERE aennr = lv_aennr AND aetyp = '31' AND objkt = lv_objkt. *Populate MARC structure READ TABLE gt_marc INTO gs_marc WITH KEY matnr = gs_maramatnr. IF sysubrc EQ 0. gs_marcsegmwerks = p_plantm. IF gs_marczp2f_oldmat IS NOT INITIAL . gs_marcsegmatnr = gs_marczp2f_oldmat. IF gs_marcsegmatnr+3(1) = ''. gs_marcsegmatnr+3(1) = ' '. ENDIF. IF gs_marcsegmatnr+9(1) = ''. gs_marcsegmatnr+9(1) = ' '. ENDIF. ELSE. gs_marcsegmatnr = gs_maramatnr. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_marcsegmatnr IMPORTING output = gs_marcsegmatnr. ENDIF. gs_marcsegbeskz = gs_marcbeskz. gs_marcsegzptyp = gs_marczptyp. gs_marcsegsobsl = gs_marcsobsl. gs_marcsegausme = gs_marcausme. ENDIF. gs_marcsegrevlv = lv_revlv. *Populate MAKT structure READ TABLE gt_makt INTO gs_makt WITH KEY matnr = gs_maramatnr spras = 'E'. IF sysubrc EQ 0. gs_maktsegmaktx = gs_maktmaktx. ELSE. READ TABLE gt_makt INTO gs_makt WITH KEY matnr = gs_maramatnr. IF sysubrc EQ 0. gs_maktsegmaktx = gs_maktmaktx. ENDIF. ENDIF. *To populate ENGSTD READ TABLE gt_drad_draw_std INTO gs_drad_draw_std https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
39/124
3/21/2015
Gmail bom extend JCI program kodu
WITH KEY objky = gs_maramatnr. IF sysubrc EQ 0. READ TABLE gt_ausp_std INTO gs_ausp_std WITH KEY objnum = gs_drad_draw_stdobjnum . IF sysubrc EQ 0. gs_marasegengstd = gs_ausp_stdatwrt. ENDIF. ENDIF. *To populate ATWRT REFRESH: gt_drad_draw_dwg1. LOOP AT gt_drad_draw_dwg INTO gs_drad_draw_dwg WHERE objky = gs_maramatnr. APPEND gs_drad_draw_dwg TO gt_drad_draw_dwg1. ENDLOOP. SORT gt_drad_draw_dwg1 DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_dwg1 COMPARING objky doknr. CLEAR lv_count_dwg. "INS SAPP4600 DESCRIBE TABLE gt_drad_draw_dwg1 LINES lv_count_dwg. IF lv_count_dwg EQ 1. *** BEGIN OF CHANGE SAPP4600 * CLEAR: lv_dwg. CLEAR: gs_drad_draw_dwg1. *** END OF CHANGE SAPP4600 READ TABLE gt_drad_draw_dwg1 INTO gs_drad_draw_dwg1 INDEX 1. IF sysubrc EQ 0. CLEAR gs_ausp_dwg. "INS SAPP4600 READ TABLE gt_ausp_dwg INTO gs_ausp_dwg WITH KEY objnum = gs_drad_draw_dwg1objnum . IF sysubrc EQ 0. gs_marasegatwrt = gs_ausp_dwgatwrt. IF gs_marasegatwrt+3(1) = ''. gs_marasegatwrt+3(1) = ' '. ENDIF. IF gs_marasegatwrt+9(1) = ''. gs_marasegatwrt+9(1) = ' '. ENDIF. CLEAR gs_ausp_dwg. "INS SAPP4600 ENDIF. CLEAR gs_drad_draw_dwg1. "INS SAPP4600 ENDIF. CLEAR lv_count_dwg. "INS SAPP4600 ELSEIF lv_count_dwg > 1. *** BEGIN OF CHANGE SAPP4600 * lv_dwg = gc_x. * CLEAR: gs_marasegatwrt. CLEAR: gs_marasegatwrt,lv_count_dwg. *** END OF CHANGE SAPP4600 ENDIF. *** BEGIN OF INSERTION SAPP4600 IF gt_drad_draw_dwg1[] IS NOT INITIAL. lv_dwg = gc_x. ELSE. CLEAR: lv_dwg, gs_marasegatwrt. ENDIF. *** END OF INSERTION SAPP4600 https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
40/124
3/21/2015
Gmail bom extend JCI program kodu
gs_allmatmatnr = gs_maramatnr. gs_allmatl_matnr = gs_marczp2f_oldmat. APPEND gs_allmat TO gt_allmat. *Append it to the IDoc structure gs_ediddsegnam = gc_maraseg. gs_ediddhlevel = '02'. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsdata = gs_maraseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnam = gc_marcseg. gs_ediddhlevel = '03'. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsdata = gs_marcseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnam = gc_maktseg. gs_ediddhlevel = '03'. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsdata = gs_maktseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. *Populate MTXL structure READ TABLE gt_drad_draw INTO gs_drad_draw WITH KEY objky = gs_maramatnr. IF sysubrc EQ 0. CONCATENATE symandt gs_drad_drawobjnum INTO gv_text. CONDENSE gv_text NOGAPS. *This logic is used to read the long text REFRESH: gt_tline. CALL FUNCTION 'READ_TEXT' EXPORTING client = symandt id = 'LTXT' language = 'E' name = gv_text object = 'DRAT' TABLES lines = gt_tline EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. CLEAR: gv_long. LOOP AT gt_tline INTO gs_tline. IF gv_long IS NOT INITIAL. CONCATENATE gv_long gs_tlinetdline INTO gv_long https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
41/124
3/21/2015
Gmail bom extend JCI program kodu
SEPARATED BY '¶'. ELSE. gv_long = gs_tlinetdline. ENDIF. CONDENSE gv_long. ENDLOOP. *Logic to split the long text if more then 1000 char gv_off_int = 0. gv_off_len = 1000. gv_str_len = STRLEN( gv_long ). * Begin of insertion SAPP5375 IF gv_str_len > 1000. lv_rest = gv_long. lv_strlen = gv_str_len. WHILE lv_strlen > 1000. CALL FUNCTION 'TEXT_SPLIT' EXPORTING length = 1000 text = lv_rest IMPORTING line = gs_mtxlsegdktxt rest = lv_rest. gs_ediddsegnam = gc_mtxlseg. gs_ediddhlevel = '3'. gs_ediddsdata = gs_mtxlseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. CLEAR: gs_mtxlseg. lv_strlen = STRLEN( lv_rest ). ENDWHILE. IF lv_rest IS NOT INITIAL. gs_ediddsegnam = gc_mtxlseg. gs_ediddhlevel = '3'. gs_mtxlsegdktxt = lv_rest. gs_ediddsdata = gs_mtxlseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. CLEAR: gs_mtxlseg. ENDIF. ELSEIF gv_long IS NOT INITIAL. gs_ediddsegnam = gc_mtxlseg. gs_ediddhlevel = '3'. gs_mtxlsegdktxt = gv_long. gs_ediddsdata = gs_mtxlseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. CLEAR: gs_mtxlseg. ENDIF. ENDIF. gs_ediddsegnum = gs_ediddsegnum 1. * End of insertion SAPP5375 * Begin of deletion SAPP5375 * IF gv_str_len < 1000. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
42/124
3/21/2015
Gmail bom extend JCI program kodu
* gv_off_len = gv_str_len. * gv_str_flag = gc_x. * ENDIF. * * DO. * IF gv_off_int < gv_str_len. * gs_mtxlsegdktxt = gv_long+gv_off_int(gv_off_len). * ELSE. * EXIT. * ENDIF. * * gs_ediddsegnam = gc_mtxlseg. * gs_ediddhlevel = '3'. * gs_ediddsdata = gs_mtxlseg. * APPEND gs_edidd TO gt_edidd. * CLEAR: gs_mtxlseg. * * IF gv_str_flag EQ gc_x. * EXIT. * ELSE. * gv_off_int = gv_off_int + gv_off_len. * IF gv_off_int GE gv_str_len. * EXIT. * ENDIF. * ENDIF. * ENDDO. * * ENDIF. * * READ TABLE gt_edidd INTO gs_edidd WITH KEY segnam = gc_mtxlseg * segnum = gs_ediddsegnum. * IF sysubrc NE 0. * CLEAR: gs_mtxlseg. * gs_ediddsegnam = gc_mtxlseg. * gs_ediddhlevel = '03'. * gs_ediddsdata = gs_mtxlseg. * APPEND gs_edidd TO gt_edidd. * ENDIF. * End of deletion SAPP5375 lv_mcount = lv_mcount + 1. *** BEGIN OF INSERTION SAPP4600 *Fetch valid from date of ECM for DWG documents REFRESH gt_aenr_doc_tmp[]. IF gt_drad_draw_dwg1[] IS NOT INITIAL. SELECT aennr datuv FROM aenr INTO TABLE gt_aenr_doc_tmp FOR ALL ENTRIES IN gt_drad_draw_dwg1 WHERE aennr = gt_drad_draw_dwg1aennr. ENDIF. *** END OF INSERTION SAPP4600 *This logic to populate the values if DWG documents Exist IF lv_dwg EQ gc_x. LOOP AT gt_drad_draw_dwg1 INTO gs_drad_draw_dwg1. *To populate MATNR, Desc and Revision Level CLEAR: gs_ausp_dwg, gs_marasegatwrt, gs_marcsegmatnr. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
43/124
3/21/2015
Gmail bom extend JCI program kodu
CLEAR gs_marasegmeins. "INS SAPP4454 *** BEGIN OF INSERTION SAPP4600 CLEAR: gs_marc_tmp,gs_marasegbrgew,gs_maraseggewei, gs_marasegdatuv,gs_marasegzlecn,gs_marasegzzglat, gs_marasegengstd,gs_marasegkzumw,gs_marcsegbeskz, gs_marcsegzptyp,gs_marcsegsobsl,gs_marcsegausme. *** END OF INSERTION SAPP4600 READ TABLE gt_ausp_dwg INTO gs_ausp_dwg WITH KEY objnum = gs_drad_draw_dwg1objnum . IF sysubrc EQ 0. *** BEGIN OF INSERTION SAPP4600 *** If alternate material no and old dir no match,skip it CLEAR gs_marc_tmp. READ TABLE gt_marc INTO gs_marc_tmp WITH KEY matnr = gs_drad_draw_dwg1objky. IF sysubrc EQ 0. IF NOT gs_marc_tmpzp2f_oldmat IS INITIAL AND NOT gs_ausp_dwgatwrt IS INITIAL. IF gs_marc_tmpzp2f_oldmat EQ gs_ausp_dwgatwrt. CLEAR: gs_drad_draw_dwg1,gs_ausp_dwg,gs_marc_tmp. CONTINUE. ENDIF. ENDIF. ENDIF. *** END OF INSERTION SAPP4600 gs_marcsegmatnr = gs_ausp_dwgatwrt. gs_marasegatwrt = gs_ausp_dwgatwrt. IF gs_marasegatwrt+3(1) = ''. gs_marasegatwrt+3(1) = ' '. ENDIF. IF gs_marasegatwrt+9(1) = ''. gs_marasegatwrt+9(1) = ' '. ENDIF. ENDIF. READ TABLE gt_drat INTO gs_drat WITH KEY doknr = gs_drad_draw_dwg1doknr. IF sysubrc EQ 0. gs_maktsegmaktx = gs_dratdktxt. ELSE. gs_maktsegmaktx = gs_ausp_dwgatwrt. ENDIF. *Logic to populate Revision Level CLEAR: lv_objkt, lv_revlv. CONCATENATE gs_drad_draw_dwg1dokar gs_drad_draw_dwg1doknr gs_drad_draw_dwg1doktl gs_drad_draw_dwg1dokvr INTO lv_objkt . SELECT SINGLE revlv FROM aeoi INTO lv_revlv WHERE aennr = gs_drad_draw_dwg1aennr AND aetyp = '31' AND objkt = lv_objkt. CLEAR: gs_marcsegrevlv. gs_marcsegrevlv = lv_revlv. *** BEGIN OF INSERTION SAPP4600 https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
44/124
3/21/2015
Gmail bom extend JCI program kodu
CLEAR: gs_allmat. READ TABLE gt_allmat INTO gs_allmat WITH KEY matnr = gs_marcsegmatnr. IF sysubrc EQ 0. CONTINUE. ELSE. *** END OF INSERTION SAPP4600 CLEAR: gs_allmat. gs_allmatmatnr = gs_marcsegmatnr. APPEND gs_allmat TO gt_allmat. ENDIF. *** BEGIN OF CHANGE SAPP4454 * CLEAR: gs_marasegmeins. IF gs_marcsegmatnr+3(1) = ''. gs_marcsegmatnr+3(1) = ' '. ENDIF. IF gs_marcsegmatnr+9(1) = ''. gs_marcsegmatnr+9(1) = ' '. ENDIF. gs_marasegmeins = 'PCS'. *** END OF CHANGE SAPP4454 *** BEGIN OF INSERTION SAPP4600 *** Map Valid from Date and Legacy ECN fields from DWG DIR Change no CLEAR gs_aenr_doc_tmp. READ TABLE gt_aenr_doc_tmp INTO gs_aenr_doc_tmp WITH KEY aennr = gs_drad_draw_dwg1aennr. IF sysubrc EQ 0. gs_marasegdatuv = gs_aenr_doc_tmpdatuv. CLEAR gs_aenr_doc_tmp. ENDIF. REFRESH : lt_class[],lt_objectdata[]. CLEAR lv_objek. IF NOT gs_drad_draw_dwg1aennr IS INITIAL. lv_objek = gs_drad_draw_dwg1aennr. CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS' EXPORTING class = lc_class * CLASSTEXT = 'X' classtype = lc_klart * CLINT = 0 * FEATURES = 'X' * LANGUAGE = SYLANGU object = lv_objek objecttable = lc_obtab * KEY_DATE = SYDATUM * INITIAL_CHARACT = 'X' * NO_VALUE_DESCRIPT = * CHANGE_SERVICE_CLF = 'X' * INHERITED_CHAR = ' ' * CHANGE_NUMBER = ' ' TABLES t_class = lt_class t_objectdata = lt_objectdata * I_SEL_CHARACTERISTIC = * T_NO_AUTH_CHARACT = EXCEPTIONS no_classification = 1 no_classtypes = 2 invalid_class_type = 3 OTHERS = 4 . https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
45/124
3/21/2015
Gmail bom extend JCI program kodu
IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ELSE. CLEAR ls_objectdata. READ TABLE lt_objectdata INTO ls_objectdata WITH KEY atnam = lv_atnam. IF NOT ls_objectdataausp1 IS INITIAL AND NOT ls_objectdataausp1 EQ lc_ques. gs_marasegzlecn = ls_objectdataausp1. CLEAR ls_objectdata. ENDIF. ENDIF. ENDIF. gs_marasegbrgew = ' 0.000'. *** END OF INSERTION SAPP4600 gs_ediddsegnam = gc_maraseg. gs_ediddhlevel = '02'. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsdata = gs_maraseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnam = gc_marcseg. gs_ediddhlevel = '03'. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsdata = gs_marcseg. APPEND gs_edidd TO gt_edidd. *** BEGIN OF INSERTION SAPP4600 ***Precheck if DWG doc has long text,if so map second line as matdesc CLEAR:gv_text. REFRESH: gt_tline. CONCATENATE symandt gs_drad_draw_dwg1objnum INTO gv_text. CONDENSE gv_text NOGAPS. *This logic is used to read the long text CALL FUNCTION 'READ_TEXT' EXPORTING client = symandt id = 'LTXT' language = 'E' name = gv_text object = 'DRAT' TABLES lines = gt_tline EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ELSE. CLEAR gs_tline. READ TABLE gt_tline INTO gs_tline INDEX 2. IF sysubrc EQ 0 AND gs_tlinetdline IS NOT INITIAL. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
46/124
3/21/2015
Gmail bom extend JCI program kodu
gs_maktsegmaktx = gs_tlinetdline. CLEAR gs_tline. ENDIF. ENDIF. CLEAR gs_tline. *** END OF INSERTION SAPP4600 gs_ediddsegnam = gc_maktseg. gs_ediddhlevel = '03'. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsdata = gs_maktseg. APPEND gs_edidd TO gt_edidd. *BEGIN OF CHANGE SAPP4600 * CLEAR:gv_str_flag. REFRESH: gt_tline. CLEAR:gv_str_flag,gv_text. REFRESH: gt_tline. *END OF CHANGE SAPP4600 CONCATENATE symandt gs_drad_draw_dwg1objnum INTO gv_text. CONDENSE gv_text NOGAPS. gs_ediddsegnum = gs_ediddsegnum + 1. *This logic is used to read the long text CALL FUNCTION 'READ_TEXT' EXPORTING client = symandt id = 'LTXT' language = 'E' name = gv_text object = 'DRAT' TABLES lines = gt_tline EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. CLEAR: gv_long. LOOP AT gt_tline INTO gs_tline. IF sytabix NE 1. "INS SAPP4600 IF gv_long IS NOT INITIAL. CONCATENATE gv_long gs_tlinetdline INTO gv_long SEPARATED BY '¶'. ELSE. gv_long = gs_tlinetdline. ENDIF. CONDENSE gv_long. ENDIF. "INS SAPP4600 ENDLOOP. *Logic to split the long text if more then 1000 char gv_off_int = 0. gv_off_len = 1000. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
47/124
3/21/2015
Gmail bom extend JCI program kodu
gv_str_len = STRLEN( gv_long ). * Begin of insertion SAPP5375 IF gv_str_len > 1000. lv_rest = gv_long. lv_strlen = gv_str_len. WHILE lv_strlen > 1000. CALL FUNCTION 'TEXT_SPLIT' EXPORTING length = 1000 text = lv_rest IMPORTING line = gs_mtxlsegdktxt rest = lv_rest. gs_ediddsegnam = gc_mtxlseg. gs_ediddhlevel = '3'. gs_ediddsdata = gs_mtxlseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. CLEAR: gs_mtxlseg. lv_strlen = STRLEN( lv_rest ). ENDWHILE. IF lv_rest IS NOT INITIAL. gs_ediddsegnam = gc_mtxlseg. gs_ediddhlevel = '3'. gs_mtxlsegdktxt = lv_rest. gs_ediddsdata = gs_mtxlseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. CLEAR: gs_mtxlseg. ENDIF. ELSEIF gv_long IS NOT INITIAL. gs_ediddsegnam = gc_mtxlseg. gs_ediddhlevel = '3'. gs_mtxlsegdktxt = gv_long. gs_ediddsdata = gs_mtxlseg. APPEND gs_edidd TO gt_edidd. gs_ediddsegnum = gs_ediddsegnum + 1. CLEAR: gs_mtxlseg. ENDIF. gs_ediddsegnum = gs_ediddsegnum 1. * End of insertion SAPP5375 * Begin of deletion SAPP5375 * IF gv_str_len < 1000. * gv_off_len = gv_str_len. * gv_str_flag = gc_x. * ENDIF. * * DO. * IF gv_off_int < gv_str_len. * gs_mtxlsegdktxt = gv_long+gv_off_int(gv_off_len). * ELSE. * EXIT. * ENDIF. * https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
48/124
3/21/2015
Gmail bom extend JCI program kodu
* gs_ediddsegnam = gc_mtxlseg. * gs_ediddhlevel = '3'. * gs_ediddsdata = gs_mtxlseg. * APPEND gs_edidd TO gt_edidd. * CLEAR: gs_mtxlseg. * * IF gv_str_flag EQ gc_x. * EXIT. * ELSE. * gv_off_int = gv_off_int + gv_off_len. * IF gv_off_int GE gv_str_len. * EXIT. * ENDIF. * ENDIF. * ENDDO. ** * READ TABLE gt_edidd INTO gs_edidd WITH KEY segnam = gc_mtxlseg * segnum = gs_ediddsegnum. * IF sysubrc NE 0. * CLEAR: gs_mtxlseg. * gs_ediddsegnam = gc_mtxlseg. * gs_ediddhlevel = '03'. * gs_ediddsdata = gs_mtxlseg. * APPEND gs_edidd TO gt_edidd. * ENDIF. * End of deletion SAPP5375 lv_mcount = lv_mcount + 1. IF lv_mcount = gc_500. SORT gt_edidd BY segnum. *Call the MASTER DISTRIBUTE IDOC FM and Create IDoc PERFORM send_idoc. CLEAR: gs_edidd, lv_mcount. REFRESH: gt_edidd. ENDIF. ENDLOOP. ENDIF. AT LAST. IF lv_mcount NE gc_500. SORT gt_edidd BY segnum. *Call the MASTER DISTRIBUTE IDOC FM and Create IDoc PERFORM send_idoc. CLEAR: gs_edidd, lv_mcount. REFRESH: gt_edidd. ENDIF. ENDAT. IF lv_mcount = gc_500. SORT gt_edidd BY segnum. *Call the MASTER DISTRIBUTE IDOC FM and Create IDoc PERFORM send_idoc. CLEAR: gs_edidd, lv_mcount. REFRESH: gt_edidd. ENDIF. ENDLOOP. ENDFORM. " POPULATE_DATA_RECORD *&* *& Form POPULATE_DATA_RECORD_BOMX https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
49/124
3/21/2015
Gmail bom extend JCI program kodu
*&* * text ** * > p1 text * < p2 text ** FORM populate_data_record_bom. TYPES: BEGIN OF ty_legacy, matnr TYPE marcmatnr, werks TYPE marcwerks , zp2f_oldmat TYPE marczp2f_oldmat, END OF ty_legacy. DATA: lv_multi TYPE c, lv_atinn_old TYPE auspatinn, lv_count_dwg TYPE i. DATA: lt_stb_temp LIKE gt_stb, ls_stb_temp LIKE LINE OF lt_stb_temp. DATA: lt_lega_mat TYPE TABLE OF ty_legacy, ls_lega_mat LIKE LINE OF lt_lega_mat. REFRESH: gt_aeoi_bom. *Get the BOM related objects from AEOI IF s_ecm IS NOT INITIAL. SELECT aennr objkt FROM aeoi INTO CORRESPONDING FIELDS OF TABLE gt_aeoi_bom WHERE aetyp = '02' AND aennr IN s_ecm. ENDIF. *To remove M from the objkt key LOOP AT gt_aeoi_bom INTO gs_aeoi_bom. gs_aeoi_bomstlnr = gs_aeoi_bomobjkt+1(8). MODIFY gt_aeoi_bom FROM gs_aeoi_bom. ENDLOOP. *To get MATNR and STLAN details from MAST . REFRESH: gt_bom_final. IF gt_aeoi_bom[] IS NOT INITIAL. SELECT a~matnr a~stlan b~zp2f_oldmat a~matnr INTO TABLE gt_bom_final FROM mast AS a INNER marc AS b ON a~matnr = b~matnr AND a~werks = b~werks FOR ALL ENTRIES IN gt_aeoi_bom WHERE a~stlnr = gt_aeoi_bomstlnr AND a~werks = p_plants AND a~matnr IN s_matnr AND a~stlan IN s_bomuse. ELSEIF s_matnr IS NOT INITIAL. SELECT a~matnr a~stlan https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
50/124
3/21/2015
Gmail bom extend JCI program kodu
b~zp2f_oldmat a~matnr INTO TABLE gt_bom_final FROM mast AS a INNER marc AS b ON a~matnr = b~matnr AND a~werks = b~werks WHERE a~werks = p_plants AND a~matnr IN s_matnr AND a~stlan IN s_bomuse. ENDIF. IF gt_bom_final IS NOT INITIAL. SORT gt_bom_final. DELETE ADJACENT DUPLICATES FROM gt_bom_final COMPARING ALL FIELDS. ELSE. *Error message when no data found CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmessage = text037. APPEND gs_messages TO gt_messages. ENDIF. *If sub assembly part needs to be included then *Get multi level BOm components IF p_sub EQ gc_x. lv_multi = gc_x. ELSE. CLEAR: lv_multi. ENDIF. *Finding DWG document for the Material REFRESH: gt_doc_part, gt_drad_draw_dwg. SELECT * FROM zgtp2f_doc_revlv INTO TABLE gt_doc_part WHERE werks = p_plants. IF sysubrc EQ 0. CLEAR:gv_doc_part. SORT gt_doc_part ASCENDING BY zprio. READ TABLE gt_doc_part INTO gs_doc_part INDEX 1. gv_doc_part = gs_doc_partdoktl. ELSE. gv_doc_part = 'GBL'. ENDIF. CLEAR lv_atinn_old. CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT' EXPORTING input = 'OLDDIRNUMBER' IMPORTING output = lv_atinn_old. IF gt_bom_final[] IS NOT INITIAL. SELECT a~dokar a~doknr a~dokvr a~doktl a~dokob a~obzae https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
51/124
3/21/2015
Gmail bom extend JCI program kodu
a~objky b~dokst b~aennr INTO TABLE gt_drad_draw_dwg FROM drad AS a INNER draw AS b ON a~dokar = b~dokar AND a~doknr = b~doknr AND a~dokvr = b~dokvr AND a~doktl = b~doktl FOR ALL ENTRIES IN gt_bom_final WHERE a~doktl = gv_doc_part AND a~dokob = 'MARA' AND a~objky = gt_bom_finalmatnr1 AND a~delflag <> 'X' AND b~dokst = 'RL' AND a~dokar = 'DWG' . ENDIF. IF gt_drad_draw_dwg[] IS NOT INITIAL. *Populate OBJNUM field to get data from AUSP SORT gt_drad_draw_dwg DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_dwg COMPARING objky doknr. LOOP AT gt_drad_draw_dwg INTO gs_drad_draw_dwg. CONCATENATE gs_drad_draw_dwgdokar gs_drad_draw_dwgdoknr gs_drad_draw_dwgdokvr gs_drad_draw_dwgdoktl INTO gs_drad_draw_dwgobjnum. CONDENSE gs_drad_draw_dwgobjnum NOGAPS. MODIFY gt_drad_draw_dwg FROM gs_drad_draw_dwg. ENDLOOP. SELECT objek klart atwrt FROM ausp INTO TABLE gt_ausp_dwg FOR ALL ENTRIES IN gt_drad_draw_dwg WHERE objek = gt_drad_draw_dwgobjnum AND klart = '017' AND atinn = lv_atinn_old. ENDIF. *To get BOM components in Multi levels LOOP AT gt_bom_final INTO gs_bom_final. REFRESH: gt_stb. *Call FM to get multi level BOM explosion CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING aumgb = 'X' capid = p_bom_a datuv = sydatum ehndl = '1' mbwls = 'X' mehrs = lv_multi mmory = '1' mtnrv = gs_bom_finalmatnr werks = p_plants vrsvo = 'X' stlan = gs_bom_finalstlan * IMPORTING https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
52/124
3/21/2015
Gmail bom extend JCI program kodu
* topmat = TABLES stb = gt_stb * matcat = EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. *Read the IDNRK, POSNR and MENGE lt_stb_temp[] = gt_stb[]. *Logic to fetch the legacy Material number REFRESH: lt_lega_mat. IF gt_stb[] IS NOT INITIAL. SELECT matnr werks zp2f_oldmat FROM marc INTO TABLE lt_lega_mat FOR ALL ENTRIES IN gt_stb WHERE matnr = gt_stbidnrk AND werks = p_plants. ENDIF. IF lt_lega_mat[] IS NOT INITIAL. SORT lt_lega_mat. DELETE ADJACENT DUPLICATES FROM lt_lega_mat COMPARING matnr werks. ENDIF. gs_ediddsegnum = 1. gs_ediddhlevel = '02'. IF gs_bom_finalzp2f_oldmat IS INITIAL. gs_mastsegmatnr = gs_bom_finalmatnr. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_mastsegmatnr IMPORTING output = gs_mastsegmatnr. ELSE. gs_mastsegmatnr = gs_bom_finalzp2f_oldmat. IF gs_mastsegmatnr+3(1) = ''. gs_mastsegmatnr+3(1) = ' '. ENDIF. IF gs_mastsegmatnr+9(1) = ''. gs_mastsegmatnr+9(1) = ' '. ENDIF. ENDIF. gs_allmatmatnr = gs_bom_finalmatnr. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
53/124
3/21/2015
Gmail bom extend JCI program kodu
gs_allmatl_matnr = gs_bom_finalzp2f_oldmat. APPEND gs_allmat TO gt_allmat. gs_mastsegmwerks = p_plantm. gs_ediddsegnam = gc_mastseg. gs_ediddsdata = gs_mastseg. APPEND gs_edidd TO gt_edidd. CLEAR: gs_mastseg. *Sort and delete the duplicates * Begin of deletion SAPP5375 * SORT gt_stb BY idnrk stlnr stufe. * DELETE ADJACENT DUPLICATES FROM gt_stb * COMPARING idnrk stlnr. * End of deletion SAPP5375 * Begin of insertion SAPP5375 *Sort and delete the duplicates SORT gt_stb BY stlnr idnrk posnr. DELETE ADJACENT DUPLICATES FROM gt_stb COMPARING stlnr idnrk posnr. * End of insertion SAPP5375 *Delete from temp table to populate sub assembly DELETE lt_stb_temp WHERE xtlnr EQ space. SORT lt_stb_temp BY idnrk. DELETE ADJACENT DUPLICATES FROM lt_stb_temp COMPARING idnrk. LOOP AT gt_stb INTO gs_stb WHERE stufe = '1'. *Populate the Item structure READ TABLE lt_lega_mat INTO ls_lega_mat WITH KEY matnr = gs_stbidnrk werks = p_plants. IF sysubrc EQ 0. IF ls_lega_matzp2f_oldmat IS INITIAL. gs_stposegidnrk = gs_stbidnrk. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_stposegidnrk IMPORTING output = gs_stposegidnrk. ELSE. gs_stposegidnrk = ls_lega_matzp2f_oldmat. IF gs_stposegidnrk+3(1) = ''. gs_stposegidnrk+3(1) = ' '. ENDIF. IF gs_stposegidnrk+9(1) = ''. gs_stposegidnrk+9(1) = ' '. ENDIF. ENDIF. ELSE. gs_stposegidnrk = gs_stbidnrk. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_stposegidnrk IMPORTING output = gs_stposegidnrk. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
54/124
3/21/2015
Gmail bom extend JCI program kodu
gs_stposegposnr = gs_stbposnr. gs_stposegmenge = gs_stbmenge. *Append it to the IDoc structure gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsegnam = gc_stposeg. gs_ediddsdata = gs_stposeg. gs_ediddhlevel = '03'. APPEND gs_edidd TO gt_edidd. CLEAR: gs_stposeg. ENDLOOP. *Populating DWG Documents REFRESH: gt_drad_draw_dwg1. LOOP AT gt_drad_draw_dwg INTO gs_drad_draw_dwg WHERE objky = gs_bom_finalmatnr. APPEND gs_drad_draw_dwg TO gt_drad_draw_dwg1. ENDLOOP. SORT gt_drad_draw_dwg1 DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_dwg1 COMPARING objky doknr. CLEAR: lv_count_dwg. DESCRIBE TABLE gt_drad_draw_dwg1 LINES lv_count_dwg. IF lv_count_dwg GT 0. "INS SAPP4600 gs_stposegposnr = 9000. LOOP AT gt_drad_draw_dwg1 INTO gs_drad_draw_dwg1. READ TABLE gt_ausp_dwg INTO gs_ausp_dwg WITH KEY objnum = gs_drad_draw_dwg1objnum. IF sysubrc EQ 0. * gs_stposegmenge = '1'. " DEL SAPP4600 *** BEGIN OF INSERTION SAPP4600 gs_stposegmenge = '0'. IF gs_bom_finalzp2f_oldmat EQ gs_ausp_dwgatwrt. gs_ausp_dwgatwrt = '000 00000 000'. ENDIF. *** END OF INSERTION SAPP4600 gs_stposegidnrk = gs_ausp_dwgatwrt. *Append it to the IDoc structure *** BEGIN OF INS SAPP4454 IF gs_stposegidnrk+3(1) = ''. gs_stposegidnrk+3(1) = ' '. ENDIF. IF gs_stposegidnrk+9(1) = ''. gs_stposegidnrk+9(1) = ' '. ENDIF. *** END OF INS SAPP4454 gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsegnam = gc_stposeg. gs_ediddsdata = gs_stposeg. gs_ediddhlevel = '03'. APPEND gs_edidd TO gt_edidd. gs_stposegposnr = gs_stposegposnr + 1. ELSE. *** BEGIN OF CHANGE SAPP4600 * gs_stposegmenge = '1'. gs_stposegmenge = '0'. *** END OF CHANGE SAPP4600 gs_stposegidnrk = space. *Append it to the IDoc structure https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
55/124
3/21/2015
Gmail bom extend JCI program kodu
gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsegnam = gc_stposeg. gs_ediddsdata = gs_stposeg. gs_ediddhlevel = '03'. APPEND gs_edidd TO gt_edidd. gs_stposegposnr = gs_stposegposnr + 1. ENDIF. ENDLOOP. ENDIF. *To populate IDoc with Sub components REFRESH: gt_sub_com. CLEAR: gs_sub_com. LOOP AT lt_stb_temp INTO ls_stb_temp. gs_sub_comobjky = ls_stb_tempidnrk. APPEND gs_sub_com TO gt_sub_com. ENDLOOP. IF gt_sub_com IS NOT INITIAL. REFRESH: gt_drad_draw_new. SELECT a~dokar a~doknr a~dokvr a~doktl a~dokob a~obzae a~objky b~dokst b~aennr INTO TABLE gt_drad_draw_new FROM drad AS a INNER draw AS b ON a~dokar = b~dokar AND a~doknr = b~doknr AND a~dokvr = b~dokvr AND a~doktl = b~doktl FOR ALL ENTRIES IN gt_sub_com WHERE a~doktl = gv_doc_part AND a~dokob = 'MARA' AND a~objky = gt_sub_comobjky AND a~delflag <> 'X' AND b~dokst = 'RL' AND a~dokar = 'DWG' . ENDIF. IF gt_drad_draw_new[] IS NOT INITIAL. *Populate OBJNUM field to get data from AUSP SORT gt_drad_draw_new DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_new COMPARING objky doknr. LOOP AT gt_drad_draw_new INTO gs_drad_draw_new. CONCATENATE gs_drad_draw_newdokar gs_drad_draw_newdoknr gs_drad_draw_newdokvr gs_drad_draw_newdoktl INTO gs_drad_draw_newobjnum. CONDENSE gs_drad_draw_newobjnum NOGAPS. MODIFY gt_drad_draw_new FROM gs_drad_draw_new. ENDLOOP. REFRESH: gt_ausp_std. SELECT objek klart https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
56/124
3/21/2015
Gmail bom extend JCI program kodu
atwrt FROM ausp INTO TABLE gt_ausp_std FOR ALL ENTRIES IN gt_drad_draw_new WHERE objek = gt_drad_draw_newobjnum AND klart = '017' AND atinn = lv_atinn_old. ENDIF. LOOP AT lt_stb_temp INTO ls_stb_temp. gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddhlevel = '02'. *Logic to get the Legacy Material num READ TABLE lt_lega_mat INTO ls_lega_mat WITH KEY matnr = ls_stb_tempidnrk werks = p_plants. IF sysubrc EQ 0. IF ls_lega_matzp2f_oldmat IS INITIAL. gs_mastsegmatnr = ls_stb_tempidnrk. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_mastsegmatnr IMPORTING output = gs_mastsegmatnr. ELSE. gs_mastsegmatnr = ls_lega_matzp2f_oldmat. IF gs_mastsegmatnr+3(1) = ''. gs_mastsegmatnr+3(1) = ' '. ENDIF. IF gs_mastsegmatnr+9(1) = ''. gs_mastsegmatnr+9(1) = ' '. ENDIF. ENDIF. ELSE. gs_mastsegmatnr = ls_stb_tempidnrk. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_mastsegmatnr IMPORTING output = gs_mastsegmatnr. ENDIF. gs_allmatmatnr = ls_stb_tempidnrk. gs_allmatl_matnr = ls_lega_matzp2f_oldmat. APPEND gs_allmat TO gt_allmat. gs_mastsegmwerks = p_plantm. gs_ediddsegnam = gc_mastseg. gs_ediddsdata = gs_mastseg. APPEND gs_edidd TO gt_edidd. CLEAR: gs_mastseg. *Populate the Item structure LOOP AT gt_stb INTO gs_stb WHERE stlnr = ls_stb_tempxtlnr.. *Logic to get the Legacy Material num READ TABLE lt_lega_mat INTO ls_lega_mat WITH KEY matnr = gs_stbidnrk werks = p_plants. IF sysubrc EQ 0. IF ls_lega_matzp2f_oldmat IS INITIAL. gs_stposegidnrk = gs_stbidnrk. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
57/124
3/21/2015
Gmail bom extend JCI program kodu
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_stposegidnrk IMPORTING output = gs_stposegidnrk. ELSE. gs_stposegidnrk = ls_lega_matzp2f_oldmat. IF gs_stposegidnrk+3(1) = ''. gs_stposegidnrk+3(1) = ' '. ENDIF. IF gs_stposegidnrk+9(1) = ''. gs_stposegidnrk+9(1) = ' '. ENDIF. ENDIF. ELSE. gs_stposegidnrk = gs_stbidnrk. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_stposegidnrk IMPORTING output = gs_stposegidnrk. ENDIF. gs_stposegposnr = gs_stbposnr. gs_stposegmenge = gs_stbmenge. *Append it to the IDoc structure gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsegnam = gc_stposeg. gs_ediddsdata = gs_stposeg. gs_ediddhlevel = '03'. APPEND gs_edidd TO gt_edidd. CLEAR: gs_stposeg. ENDLOOP. *To add DWG document REFRESH: gt_drad_draw_new1. LOOP AT gt_drad_draw_new INTO gs_drad_draw_new WHERE objky = ls_stb_tempidnrk. APPEND gs_drad_draw_new TO gt_drad_draw_new1. ENDLOOP. SORT gt_drad_draw_new1 DESCENDING BY objky dokvr doknr. DELETE ADJACENT DUPLICATES FROM gt_drad_draw_new1 COMPARING objky doknr. CLEAR: lv_count_dwg. DESCRIBE TABLE gt_drad_draw_new1 LINES lv_count_dwg. *** BEGIN OF CHANGE SAPP4600 * IF lv_count_dwg GT 1. IF lv_count_dwg GT 0. *** END OF CHANGE SAPP4600 gs_stposegposnr = 9000. LOOP AT gt_drad_draw_new1 INTO gs_drad_draw_new1. READ TABLE gt_ausp_std INTO gs_ausp_std WITH KEY objnum = gs_drad_draw_new1objnum. IF sysubrc EQ 0. * gs_stposegmenge = '1'. "DEL SAPP4600 *** BEGIN OF INSERTION SAPP4600 READ TABLE lt_lega_mat INTO ls_lega_mat WITH KEY matnr = gs_drad_draw_new1objky werks = p_plants. IF sysubrc EQ 0. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
58/124
3/21/2015
Gmail bom extend JCI program kodu
IF ls_lega_matzp2f_oldmat EQ gs_ausp_stdatwrt. gs_ausp_stdatwrt = '000 00000 000'. ENDIF. ENDIF. gs_stposegmenge = '0'. CLEAR: ls_lega_mat. *** END OF INSERTION SAPP4600 gs_stposegidnrk = gs_ausp_stdatwrt. *Append it to the IDoc structure *** BEGIN OF INS SAPP4454 IF gs_stposegidnrk+3(1) = ''. gs_stposegidnrk+3(1) = ' '. ENDIF. IF gs_stposegidnrk+9(1) = ''. gs_stposegidnrk+9(1) = ' '. ENDIF. *** END OF INS SAPP4454 gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsegnam = gc_stposeg. gs_ediddsdata = gs_stposeg. gs_ediddhlevel = '03'. APPEND gs_edidd TO gt_edidd. gs_stposegposnr = gs_stposegposnr + 1. ELSE. *** BEGIN OF CHANGE SAPP4600 * gs_stposegmenge = '1'. gs_stposegmenge = '0'. *** END OF CHANGE SAPP4600 gs_stposegidnrk = space. *Append it to the IDoc structure gs_ediddsegnum = gs_ediddsegnum + 1. gs_ediddsegnam = gc_stposeg. gs_ediddsdata = gs_stposeg. gs_ediddhlevel = '03'. APPEND gs_edidd TO gt_edidd. gs_stposegposnr = gs_stposegposnr + 1. ENDIF. ENDLOOP. ENDIF. ENDLOOP. SORT gt_edidd BY segnum. *Create IDoc for each and every material PERFORM send_idoc." USING gs_bom_finalmatnr. *Refresh all the internal table data REFRESH: gt_edidd, lt_stb_temp. ENDLOOP. ENDFORM. " POPULATE_DATA_RECORD_BOMX *&* *& Form BUILD_FIELDCATALOG *&* * Building the fieldcatalog for ALV GRID report ** * > p1 text * < p2 text ** FORM build_fieldcatalog . *Building the fieldcatalog using MACRO REFRESH: gt_fieldcat. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
59/124
3/21/2015
Gmail bom extend JCI program kodu
mcat gc_icon text064 text064. mcat gc_docnum text066 text066. mcat gc_matnr text067 text067. mcat gc_l_matnr text126 text126. mcat gc_werks text068 text068. mcat gc_mess text065 text065. ENDFORM. " BUILD_FIELDCATALOG *&* *& Form BUILD_LAYOUT *&* * Building the layout design for ALV GRID output ** * > p1 text * < p2 text ** FORM build_layout . *To build the layout design gs_layoutcwidth_opt = gc_x. gs_layoutzebra = gc_x. gs_layoutsel_mode = gc_x . gs_layoutbox_fname = gc_sel. ENDFORM. " BUILD_LAYOUT *&* *& Form DISPLAY_ALV *&* * PFSTATUS for ALV grid ** * > p1 text * < p2 text ** FORM display_alv . DATA: lv_title TYPE lvc_title. *Calling FM to display ALV GRID gv_repid = syrepid. IF r_materl EQ gc_x. lv_title = text061. ELSE. lv_title = text062. ENDIF. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = gv_repid i_grid_title = lv_title is_layout_lvc = gs_layout it_fieldcat_lvc = gt_fieldcat i_default = 'X' i_save = ' ' TABLES t_outtab = gt_messages[] EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. ENDFORM. " DISPLAY_ALV https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
60/124
3/21/2015
Gmail bom extend JCI program kodu
*&* *& Form FETCH_MARC_DATA *&* * text ** * > p1 text * < p2 text ** FORM fetch_marc_data . REFRESH: gt_aeoi, gt_marc_e, gt_mara_e, gt_makt_e, r_mat_ref. DATA: lv_multi. *Fill the RANGES for matnr, lgort, vkorg and bwkey IF p_fin_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_fin_m. APPEND r_mat_ref. ENDIF. IF p_pur_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_pur_m. APPEND r_mat_ref. ENDIF. IF p_ref_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_ref_m. APPEND r_mat_ref. ENDIF. IF p_sub_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_sub_m. APPEND r_mat_ref. ENDIF. IF p_ph_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_ph_m. APPEND r_mat_ref. ENDIF. IF p_def_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_def_m. APPEND r_mat_ref. ENDIF. IF p_trd_m IS NOT INITIAL. CLEAR: r_mat_ref. r_mat_refsign = 'I'. r_mat_refoption = 'EQ'. r_mat_reflow = p_trd_m. APPEND r_mat_ref. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
61/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. *Select data from AEOI table for the input ECM IF s_ecm_e IS NOT INITIAL. SELECT aennr objkt revlv FROM aeoi INTO TABLE gt_aeoi WHERE aetyp = '41' AND aennr IN s_ecm_e. IF gt_aeoi[] IS NOT INITIAL. *To get the latest version SORT gt_aeoi DESCENDING. DELETE ADJACENT DUPLICATES FROM gt_aeoi COMPARING aennr objkt. ENDIF. ENDIF. *Select the required data from MARC, if material number and ecm number *given IF s_mats_e IS NOT INITIAL. *If you get data from AEOI, then fetch the data from MARC IF gt_aeoi[] IS NOT INITIAL. SELECT * FROM marc INTO TABLE gt_marc_e FOR ALL ENTRIES IN gt_aeoi WHERE matnr = gt_aeoiobjkt AND werks = p_plnt_e AND matnr IN s_mats_e. ENDIF. *If ecm number is initial then use only material number IF s_ecm_e IS INITIAL. SELECT * FROM marc INTO TABLE gt_marc_e WHERE werks = p_plnt_e AND matnr IN s_mats_e. ENDIF. ELSE. *If material number is initial IF gt_aeoi[] IS NOT INITIAL. SELECT * FROM marc INTO TABLE gt_marc_e FOR ALL ENTRIES IN gt_aeoi WHERE matnr = gt_aeoiobjkt AND werks = p_plnt_e. ENDIF. ENDIF. *Logic to include BOM components details in Material extension IF p_bom_in EQ gc_x. *To get MATNR and STLAN details from MAST . REFRESH: gt_aeoi_bom. *Get the BOM related objects from AEOI IF s_ecm_e IS NOT INITIAL. SELECT aennr objkt FROM aeoi INTO CORRESPONDING FIELDS OF TABLE gt_aeoi_bom WHERE aetyp = '02' AND aennr IN s_ecm_e. ENDIF. *To remove M from the objkt key https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
62/124
3/21/2015
Gmail bom extend JCI program kodu
LOOP AT gt_aeoi_bom INTO gs_aeoi_bom. gs_aeoi_bomstlnr = gs_aeoi_bomobjkt+1(8). MODIFY gt_aeoi_bom FROM gs_aeoi_bom. ENDLOOP. *To get MATNR and STLAN details from MAST . REFRESH: gt_bom_create. IF gt_aeoi_bom[] IS NOT INITIAL. SELECT matnr werks stlan FROM mast INTO CORRESPONDING FIELDS OF TABLE gt_bom_create FOR ALL ENTRIES IN gt_aeoi_bom WHERE stlnr = gt_aeoi_bomstlnr AND werks = p_plnt_e AND matnr IN s_mats_e AND stlan IN s_bom_e. ELSEIF s_mats_e IS NOT INITIAL. SELECT matnr werks stlan FROM mast INTO CORRESPONDING FIELDS OF TABLE gt_bom_create WHERE werks = p_plnt_e AND matnr IN s_mats_e AND stlan IN s_bom_e. ENDIF. IF gt_bom_create IS NOT INITIAL. SORT gt_bom_create. DELETE ADJACENT DUPLICATES FROM gt_bom_create COMPARING ALL FIELDS. *Get multi level BOm components lv_multi = gc_x. LOOP AT gt_bom_create INTO gs_bom_create. gs_bom_createplant = p_plnt_t. IF p_bom_t IS NOT INITIAL. gs_bom_createbomuse = p_bom_t. ELSE. gs_bom_createbomuse = gs_bom_createstlan. ENDIF. gs_bom_createecn = p_ecm_t. MODIFY gt_bom_create FROM gs_bom_create. ENDLOOP. *To get BOM components in Multi levels LOOP AT gt_bom_create INTO gs_bom_create. REFRESH: gt_stb. *Call FM to get multi level BOM explosion CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING aumgb = 'X' capid = p_app_b datuv = sydatum ehndl = '1' mbwls = 'X' mehrs = lv_multi mmory = '1' mtnrv = gs_bom_creatematnr werks = p_plnt_e vrsvo = 'X' https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
63/124
3/21/2015
Gmail bom extend JCI program kodu
stlan = gs_bom_createstlan TABLES stb = gt_stb EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. APPEND LINES OF gt_stb TO gt_stb_mat. ENDLOOP. IF gt_stb_mat[] IS NOT INITIAL. SELECT * FROM marc APPENDING TABLE gt_marc_e FOR ALL ENTRIES IN gt_stb_mat WHERE matnr = gt_stb_matidnrk AND werks = p_plnt_e.. ENDIF. ENDIF. ENDIF. IF gt_marc_e[] IS NOT INITIAL. SORT gt_marc_e. DELETE ADJACENT DUPLICATES FROM gt_marc_e COMPARING ALL FIELDS. *Check the validation for Target Plant REFRESH: gt_target_plnt, gt_target_plnt_r. SELECT matnr werks lgpro FROM marc INTO TABLE gt_target_plnt FOR ALL ENTRIES IN gt_marc_e WHERE matnr = gt_marc_ematnr AND werks = p_plnt_t. IF sysubrc EQ 0. SORT gt_target_plnt. ENDIF. IF r_mat_ref IS NOT INITIAL. SELECT matnr werks lgpro FROM marc INTO TABLE gt_target_plnt_r WHERE matnr IN r_mat_ref AND werks = p_plnt_t. IF sysubrc EQ 0. SORT gt_target_plnt_r. ENDIF. ENDIF. REFRESH: gt_mara_e, gt_makt_e. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
64/124
3/21/2015
Gmail bom extend JCI program kodu
*Fetching MARA data for selected Material and Plant IF gt_marc_e[] IS NOT INITIAL. SELECT matnr mtart begru kzeff kzkfg labor matkl meins mstae mstde satnr FROM mara INTO TABLE gt_mara_e FOR ALL ENTRIES IN gt_marc_e WHERE matnr = gt_marc_ematnr. IF sysubrc EQ 0. SELECT matnr maktx spras FROM makt INTO TABLE gt_makt_e FOR ALL ENTRIES IN gt_mara_e WHERE matnr = gt_mara_ematnr. ENDIF. ENDIF. ELSE. MESSAGE text051 TYPE gc_s DISPLAY LIKE gc_e. ENDIF. *To get Valuation Area SELECT werks bwkey FROM t001w INTO TABLE gt_bwkey WHERE werks = p_plnt_e OR werks = p_plnt_t. ENDFORM. " FETCH_MARC_DATA *&* *& Form POPULATE_FINAL_ALV_TABLE *&* * text ** * > p1 text * < p2 text ** FORM populate_final_alv_table . *Logic to populate the final internal table *If no entries found, then raise error message IF gt_mara_e[] IS INITIAL. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messageswerks = p_plnt_t. gs_messagesmessage = text039. APPEND gs_messages TO gt_messages. ENDIF. LOOP AT gt_mara_e INTO gs_mara_e. CLEAR: gs_alv_material. MOVECORRESPONDING gs_mara_e TO gs_alv_material. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
65/124
3/21/2015
Gmail bom extend JCI program kodu
READ TABLE gt_marc_e INTO gs_marc_e WITH KEY matnr = gs_mara_ematnr. IF sysubrc EQ 0. MOVECORRESPONDING gs_marc_e TO gs_alv_material. CLEAR: gs_alv_materiallgpro. ENDIF. READ TABLE gt_makt_e INTO gs_makt_e WITH KEY matnr = gs_mara_ematnr spras = 'E'. IF sysubrc EQ 0. MOVECORRESPONDING gs_makt_e TO gs_alv_material. ELSE. READ TABLE gt_makt_e INTO gs_makt_e WITH KEY matnr = gs_mara_ematnr. IF sysubrc EQ 0. MOVECORRESPONDING gs_makt_e TO gs_alv_material. ENDIF. ENDIF. IF p_pltyp EQ gc_x. IF gs_marc_ezptyp IS NOT INITIAL. CASE gs_marc_ezptyp. WHEN 'FIN'. gs_alv_materiallgpro = p_fin_sl. gs_alv_materialvkorg = p_fin_so. gs_alv_materialvtweg = p_fin_d. gs_alv_materialbwkey = p_fin_v. gs_alv_materialmat_r = p_fin_m. gs_alv_materiallgnum = p_fin_w. WHEN 'PUR'. gs_alv_materiallgpro = p_pur_sl. gs_alv_materialvkorg = p_pur_so. gs_alv_materialvtweg = p_pur_d. gs_alv_materialbwkey = p_pur_v. gs_alv_materialmat_r = p_pur_m. gs_alv_materiallgnum = p_pur_w. WHEN 'REF'. gs_alv_materiallgpro = p_ref_sl. gs_alv_materialvkorg = p_ref_so. gs_alv_materialvtweg = p_ref_d. gs_alv_materialbwkey = p_ref_v. gs_alv_materialmat_r = p_ref_m. gs_alv_materiallgnum = p_ref_w. WHEN 'SUB'. IF gs_alv_materialsobsl EQ '50'. gs_alv_materiallgpro = p_ph_sl. gs_alv_materialvkorg = p_ph_so. gs_alv_materialvtweg = p_ph_d. gs_alv_materialbwkey = p_ph_v. gs_alv_materialmat_r = p_ph_m. gs_alv_materiallgnum = p_ph_w. ELSE. gs_alv_materiallgpro = p_sub_sl. gs_alv_materialvkorg = p_sub_so. gs_alv_materialvtweg = p_sub_d. gs_alv_materialbwkey = p_sub_v. gs_alv_materialmat_r = p_sub_m. gs_alv_materiallgnum = p_sub_w. ENDIF. WHEN 'TRA'. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
66/124
3/21/2015
Gmail bom extend JCI program kodu
gs_alv_materiallgpro = p_trd_sl. gs_alv_materialvkorg = p_trd_so. gs_alv_materialvtweg = p_trd_d. gs_alv_materialbwkey = p_trd_v. gs_alv_materialmat_r = p_trd_m. gs_alv_materiallgnum = p_trd_w. WHEN OTHERS. ENDCASE. ELSE. gs_alv_materiallgpro = p_def_sl. gs_alv_materialvkorg = p_def_so. gs_alv_materialvtweg = p_def_d. gs_alv_materialbwkey = p_def_v. gs_alv_materialmat_r = p_def_m. gs_alv_materiallgnum = p_def_w. ENDIF. ELSE. gs_alv_materiallgpro = p_def_sl. gs_alv_materialvkorg = p_def_so. gs_alv_materialvtweg = p_def_d. gs_alv_materialbwkey = p_def_v. gs_alv_materialmat_r = p_def_m. gs_alv_materiallgnum = p_def_w. ENDIF. IF gs_alv_materialmat_r IS INITIAL. gs_alv_materiallgpro = p_def_sl. gs_alv_materialvkorg = p_def_so. gs_alv_materialvtweg = p_def_d. gs_alv_materialbwkey = p_def_v. gs_alv_materialmat_r = p_def_m. gs_alv_materiallgnum = p_def_w. ENDIF. IF gs_alv_materialbwkey IS INITIAL. READ TABLE gt_bwkey INTO gs_bwkey WITH KEY werks = p_plnt_t. IF sysubrc EQ 0. gs_alv_materialbwkey = gs_bwkeybwkey. ENDIF. ENDIF. *To check whether this material exists in the target material CLEAR: gs_alv_materialsel. READ TABLE gt_target_plnt INTO gs_target_plnt WITH KEY matnr = gs_mara_ematnr werks = p_plnt_t. IF sysubrc NE 0. gs_alv_materialsel = gc_x. ENDIF. READ TABLE gt_target_plnt_r INTO gs_target_plnt_r WITH KEY matnr = gs_alv_materialmat_r werks = p_plnt_t. IF sysubrc EQ 0. IF gs_alv_materiallgpro IS INITIAL . gs_alv_materiallgpro = gs_target_plntlgpro. ENDIF. ENDIF. gs_alv_materialplant = p_plnt_t. IF p_plnt_t EQ '1010'. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
67/124
3/21/2015
Gmail bom extend JCI program kodu
CLEAR: gs_alv_materialzptyp. ENDIF. APPEND gs_alv_material TO gt_alv_material. CLEAR: gs_mara_e, gs_marc_e, gs_makt_e." gs_mrp, gs_forecast. ENDLOOP. *Display Final messages in ALV format for s IF gt_alv_material[] IS NOT INITIAL. PERFORM build_layout1. PERFORM build_catalog. PERFORM display_final_alv. ENDIF. ENDFORM. " POPULATE_FINAL_ALV_TABLE *&* *& Form BUILD_CATALOG *&* * text ** * > p1 text * < p2 text ** FORM build_catalog . REFRESH: gt_fieldcat1. gv_repid = syrepid. *FM to create field catalog for final internal table CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = gv_repid i_internal_tabname = 'GT_ALV_MATERIAL' i_inclname = gv_repid i_bying_buffer = gc_x CHANGING ct_fieldcat = gt_fieldcat1 EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. *To modify the fieldcatalog according to the s LOOP AT gt_fieldcat1 INTO gs_fieldcat1. IF gs_fieldcat1fieldname = 'SEL'. gs_fieldcat1seltext_m = text118. gs_fieldcat1checkbox = gc_x. gs_fieldcat1edit = gc_x. ELSEIF gs_fieldcat1fieldname = 'ZPTYP'. gs_fieldcat1seltext_s = text071. gs_fieldcat1edit = gc_x. ENDIF. IF gs_fieldcat1fieldname = 'MAT_R'. gs_fieldcat1seltext_m = text078. gs_fieldcat1seltext_s = text078. gs_fieldcat1reptext_ddic = text078. gs_fieldcat1seltext_l = text078. gs_fieldcat1edit = gc_x. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
68/124
3/21/2015
Gmail bom extend JCI program kodu
IF gs_fieldcat1fieldname = 'PLANT'. gs_fieldcat1seltext_m = text073. gs_fieldcat1seltext_s = text073. gs_fieldcat1reptext_ddic = text073. gs_fieldcat1seltext_l = text073. ENDIF. IF gs_fieldcat1fieldname = 'ZP2F_OLDMAT'. gs_fieldcat1seltext_m = text072. gs_fieldcat1seltext_s = text072. gs_fieldcat1reptext_ddic = text072. gs_fieldcat1seltext_l = text072. gs_fieldcat1edit = gc_x. ENDIF. gs_fieldcat1just = 'C'. MODIFY gt_fieldcat1 FROM gs_fieldcat1. CLEAR: gs_fieldcat1. ENDLOOP. ENDFORM. " BUILD_CATALOG *&* *& Form BUILD_LAYOUT1 *&* * text ** * > p1 text * < p2 text ** FORM build_layout1 . *To build the layout design gs_layout1colwidth_optimize = gc_x. gs_layout1zebra = gc_x. ENDFORM. " BUILD_LAYOUT1 *&* *& Form DISPLAY_FINAL_ALV *&* * text ** * > p1 text * < p2 text ** FORM display_final_alv . gv_repid = syrepid. *FM to display ALV for Material Extn to Plant CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = gv_repid i_callback_pf_status_set = 'PF_STATUS' i_callback__command = '_COMMAND' i_grid_title = text069 is_layout = gs_layout1 it_fieldcat = gt_fieldcat1 i_default = 'X' i_save = ' ' TABLES t_outtab = gt_alv_material EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
69/124
3/21/2015
Gmail bom extend JCI program kodu
* WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. ENDFORM. " DISPLAY_FINAL_ALV *&* *& Form _command *&* * text ** * actions on ALV FORM _command USING r_ucomm TYPE syucomm selfield TYPE slis_selfield. CASE r_ucomm. *If tries to extend a material to another Plant WHEN 'EASY'. CLEAR: gv_down. PERFORM plant_material_extn. WHEN 'DWN' . gv_down = gc_x. PERFORM plant_material_extn. WHEN 'SEL'. PERFORM select_all_entries_mat_extn CHANGING gt_alv_material[]. WHEN 'DESEL'. PERFORM deselect_all_entries_mat_extn CHANGING gt_alv_material[]. WHEN OTHERS. ENDCASE. ENDFORM. "_command "_command* * FORM PFSTATUS * ** *Form for settings the pf status to the alv FORM pf_status USING rt_extab TYPE slis_t_extab. *PF Status for ALV report SET PFSTATUS 'STANDARD'. ENDFORM. "pfstatus *&* *& Form PLANT_MATERIAL_EXTN *&* * text ** * > p1 text * < p2 text ** FORM plant_material_extn . *Extend plant for all selected Materials DATA: lv_ref1 TYPE REF TO cl_gui_alv_grid. DATA: ls_headdata LIKE bapimathead, ls_return LIKE bapiret2, lt_materialdescription TYPE TABLE OF bapi_makt, ls_materialdescription TYPE bapi_makt. DATA: lt_extn TYPE STANDARD TABLE OF bapiparex, ls_extn TYPE bapiparex, lt_extnx TYPE STANDARD TABLE OF bapiparexx, ls_extnx TYPE bapiparexx, lt_returnmessages TYPE TABLE OF bapi_matreturn2. DATA: lt_alt_dates TYPE STANDARD TABLE OF aedt_api01, lt_objmgrec TYPE STANDARD TABLE OF aeoi_api01, ls_alt_dates TYPE aedt_api01, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
70/124
3/21/2015
Gmail bom extend JCI program kodu
ls_objmgrec TYPE aeoi_api01, ls_change_header TYPE aenr_api01, lt_effectivity TYPE TABLE OF aeef_api01, ls_effectivity TYPE aeef_api01. DATA: lv_msg TYPE msg, lv_fname TYPE string. TYPES: BEGIN OF ty_int_head, field1(20) TYPE c, " Header Data END OF ty_int_head. DATA: lt_int_head TYPE TABLE OF ty_int_head, ls_int_head TYPE ty_int_head. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_ref1. *To get the ALV grid details CALL METHOD lv_ref1>check_changed_data. REFRESH: gt_. *Calling Plant extension Function call LOOP AT gt_alv_material INTO gs_alv_material WHERE sel = gc_x. CLEAR: ls_headdata, gs_clientdata, gs_salesdata, gs_plantdata, gs_warehousenumberdata, gs_forecastparameters, gs_valuationdata, gs_storagelocationdata, gs_clientdatax, gs_plantdatax, gs_storagelocationdatax, gs_valuationdatax, gs_warehousenumberdatax, gs_forecastparameters, gs_salesdatax. REFRESH: lt_materialdescription, lt_returnmessages, gt_intern, gt_unitsofmeasure, gt_unitsofmeasurex, gt_taxclass, gt_materiallongtext, gt_prtdata, gt_prtdatax, lt_extn, lt_extnx. *To check whether this material exists in the target material READ TABLE gt_target_plnt INTO gs_target_plnt WITH KEY matnr = gs_alv_materialmatnr werks = p_plnt_t. IF sysubrc EQ 0. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmatnr = gs_alv_materialmatnr. gs_messageszp2f_oldmat = gs_alv_materialzp2f_oldmat. gs_messageswerks = p_plnt_t. gs_messagesmessage = text040. APPEND gs_messages TO gt_messages. CONTINUE. ENDIF. *To populate Header details READ TABLE gt_marc_e INTO gs_marc_e WITH KEY matnr = gs_alv_materialmatnr werks = gs_alv_materialwerks. *To get the Material and Plant related details PERFORM get_material_all. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
71/124
3/21/2015
Gmail bom extend JCI program kodu
IF gv_error EQ gc_x. CLEAR: gv_error. CONTINUE. ENDIF. ls_headdatamaterial = gs_alv_materialmatnr. ls_headdatamatl_type = gs_alv_materialmtart. * ls_headdatabasic_view = c_x. ls_headdatamrp_view = gc_x. IF gs_forecastparameters IS NOT INITIAL. ls_headdataforecast_view = gc_x. ENDIF. IF gs_valuationdata IS NOT INITIAL. ls_headdata_view = gc_x. ls_headdatacost_view = gc_x. ENDIF. IF gs_salesdata IS NOT INITIAL. ls_headdatasales_view = gc_x. ENDIF. ls_headdatapurchase_view = gc_x. ls_headdataprt_view = gc_x. IF gs_storagelocationdata IS NOT INITIAL. ls_headdatastorage_view = gc_x. ENDIF. IF gs_warehousenumberdata IS NOT INITIAL. ls_headdatawarehouse_view = gc_x. ENDIF. *Populate MARA details gs_clientdatabase_uom = gs_alv_materialmeins. gs_clientdataauthoritygroup = gs_alv_materialbegru. gs_clientdatadsn_office = gs_alv_materiallabor. *Populate Plant and MRP profile details from MARC and MDIP gs_plantdataplant = p_plnt_t. LOOP AT gt_prtdata INTO gs_prtdata . IF gs_prtdataplant IS NOT INITIAL. gs_prtdataplant = p_plnt_t. MODIFY gt_prtdata FROM gs_prtdata. ENDIF. ENDLOOP. IF gs_plantdataavailcheck IS INITIAL. IF gs_marc_emtvfp IS INITIAL. gs_plantdataavailcheck = 'KP'. ELSE. gs_plantdataavailcheck = gs_marc_emtvfp. ENDIF. ENDIF. IF gs_plantdataprofit_ctr IS INITIAL. IF gs_marc_eprctr IS INITIAL. gs_plantdataprofit_ctr = gc_. ELSE. gs_plantdataprofit_ctr = gs_marc_eprctr. ENDIF. ENDIF. IF gs_forecastparameters IS NOT INITIAL. IF gs_forecastparametersfore_model IS INITIAL. gs_forecastparametersfore_model = 'D'. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
72/124
3/21/2015
Gmail bom extend JCI program kodu
gs_forecastparametersplant = p_plnt_t. ENDIF. *To populate the Z fields of MARC IF NOT gs_alv_materialzp2f_oldmat IS INITIAL OR NOT gs_alv_materialzptyp IS INITIAL. ls_extnstructure = 'BAPI_TE_MARC'. ls_extnvaluepart1+0(4) = p_plnt_t. ls_extnvaluepart1+4(18) = gs_alv_materialzp2f_oldmat. ls_extnvaluepart1+22(4) = gs_alv_materialzptyp. ls_extnvaluepart1+26(12) = p_ecm_t. ls_extnxstructure = 'BAPI_TE_MARCX'. ls_extnxvaluepart1+0(4) = p_plnt_t. ls_extnxvaluepart1+21(1) = 'X'. ls_extnxvaluepart1+25(1) = 'X'. ls_extnxvaluepart1+26(1) = 'X'. APPEND ls_extn TO lt_extn. APPEND ls_extnx TO lt_extnx. CLEAR : ls_extn,ls_extnx. ENDIF. *Populate MAKT details ls_materialdescriptionlangu = gs_alv_materialspras. ls_materialdescriptionmatl_desc = gs_alv_materialmaktx. APPEND ls_materialdescription TO lt_materialdescription. IF gs_storagelocationdata IS NOT INITIAL. gs_storagelocationdataplant = p_plnt_t. CLEAR: gs_storagelocationdatastge_loc. IF gs_alv_materialzptyp IS NOT INITIAL. CASE gs_alv_materialzptyp. WHEN 'FIN'. gs_storagelocationdatastge_loc = p_fin_sl. WHEN 'SUB'. IF gs_alv_materialsobsl = '50'. gs_storagelocationdatastge_loc = p_ph_sl. ELSE. gs_storagelocationdatastge_loc = p_sub_sl. ENDIF. WHEN 'REF'. gs_storagelocationdatastge_loc = p_ref_sl. WHEN 'PUR'. gs_storagelocationdatastge_loc = p_pur_sl. WHEN 'TRA'. gs_storagelocationdatastge_loc = p_trd_sl. ENDCASE. ELSE. gs_storagelocationdatastge_loc = p_def_sl. ENDIF. IF gs_storagelocationdatastge_loc IS INITIAL. READ TABLE gt_target_plnt_r INTO gs_target_plnt_r WITH KEY matnr = gs_alv_materialmat_r werks = p_plnt_t . IF sysubrc EQ 0. gs_storagelocationdatastge_loc = gs_target_plnt_rlgpro. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
73/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. IF gs_storagelocationdatastge_loc IS INITIAL AND gs_marc_elgpro IS NOT INITIAL. gs_storagelocationdatastge_loc = gs_marc_elgpro. ELSEIF gs_storagelocationdatastge_loc IS INITIAL AND gs_marc_elgpro IS INITIAL. CLEAR: gs_storagelocationdataplant, gs_plantdataiss_st_loc. ENDIF. ELSE. CLEAR: gs_plantdataiss_st_loc. ENDIF. IF gs_valuationdata IS NOT INITIAL. IF gs_alv_materialzptyp IS NOT INITIAL. CASE gs_alv_materialzptyp. WHEN 'FIN'. gs_valuationdataval_area = p_fin_v. WHEN 'SUB'. IF gs_alv_materialsobsl = '50'. gs_valuationdataval_area = p_ph_v. ELSE. gs_valuationdataval_area = p_sub_v. ENDIF. WHEN 'REF'. gs_valuationdataval_area = p_ref_v. WHEN 'PUR'. gs_valuationdataval_area = p_pur_v. WHEN 'TRA'. gs_valuationdataval_area = p_trd_v. ENDCASE. ELSE. gs_valuationdataval_area = p_def_v. ENDIF. READ TABLE gt_bwkey INTO gs_bwkey WITH KEY werks = p_plnt_t. IF sysubrc EQ 0. gs_valuationdataval_area = gs_bwkeybwkey. gs_alv_materialbwkey = gs_bwkeybwkey. ENDIF. ENDIF. IF gv_down = gc_x. mcat1 text067. mcat1 text070. mcat1 text068. mcat1 text071. mcat1 text072. mcat1 text073. mcat1 text074. mcat1 text075. mcat1 text076. mcat1 text077. mcat1 text078. mcat1 text079. mcat1 text080. mcat1 text081. mcat1 text082. mcat1 text083. mcat1 text084. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
74/124
3/21/2015
Gmail bom extend JCI program kodu
mcat1 text085. mcat1 text086. mcat1 text087. mcat1 text088. mcat1 text089. mcat1 text090. mcat1 text091. mcat1 text092. mcat1 text093. mcat1 text094. mcat1 text095. mcat1 text096. mcat1 text097. mcat1 text098. mcat1 text099. mcat1 text100. mcat1 text101. mcat1 text102. mcat1 text103. mcat1 text104. mcat1 text105. mcat1 text106. mcat1 text107. mcat1 text108. mcat1 text109. mcat1 text110. mcat1 text111. mcat1 text112. mcat1 text113. mcat1 text114. MOVECORRESPONDING gs_alv_material TO gs_. MOVECORRESPONDING gs_clientdata TO gs_. MOVECORRESPONDING gs_plantdata TO gs_. MOVECORRESPONDING gs_valuationdata TO gs_. APPEND gs_ TO gt_. ELSE. *To mark the fields to be updated PERFORM get_bapi_update_table USING gs_plantdata CHANGING gs_plantdatax. PERFORM get_bapi_update_table USING gs_forecastparameters CHANGING gs_forecastparametersx. PERFORM get_bapi_update_table USING gs_storagelocationdata CHANGING gs_storagelocationdatax. PERFORM get_bapi_update_table USING gs_warehousenumberdata CHANGING gs_warehousenumberdatax. PERFORM get_bapi_update_table USING gs_valuationdata CHANGING gs_valuationdatax. PERFORM get_bapi_update_table USING gs_salesdata CHANGING gs_salesdatax. *For Table parameters PERFORM get_bapi_update_table1 USING gt_unitsofmeasure[] CHANGING gt_unitsofmeasurex[]. PERFORM get_bapi_update_table1 USING gt_prtdata[] CHANGING gt_prtdatax[]. *** BEGIN OF INSERTION SAPP4840 REFRESH gt_matlongtext[]. IF NOT gt_materiallongtext[] IS INITIAL. CLEAR gs_materiallongtext. LOOP AT gt_materiallongtext INTO gs_materiallongtext. CLEAR gs_matlongtext. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
75/124
3/21/2015
Gmail bom extend JCI program kodu
MOVECORRESPONDING gs_materiallongtext TO gs_matlongtext. CLEAR: gs_matlongtexttext_name,gs_materiallongtext. gs_matlongtexttext_name = ls_headdatamaterial. APPEND gs_matlongtext TO gt_matlongtext. CLEAR gs_matlongtext. ENDLOOP. ENDIF. *** END OF INSERTION SAPP4840 *Call BAPI_MATERIAL_SAVEDATA to extend the plant for the material CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING headdata = ls_headdata * clientdata = gs_clientdata * clientdatax = gs_clientdatax plantdata = gs_plantdata plantdatax = gs_plantdatax forecastparameters = gs_forecastparameters forecastparametersx = gs_forecastparametersx storagelocationdata = gs_storagelocationdata storagelocationdatax = gs_storagelocationdatax valuationdata = gs_valuationdata valuationdatax = gs_valuationdatax warehousenumberdata = gs_warehousenumberdata warehousenumberdatax = gs_warehousenumberdatax salesdata = gs_salesdata salesdatax = gs_salesdatax flag_online = ' ' flag_cad_call = ' ' no_dequeue = ' ' no_rollback_work = ' ' IMPORTING return = ls_return TABLES * materialdescription = lt_materialdescription returnmessages = lt_returnmessages unitsofmeasure = gt_unitsofmeasure unitsofmeasurex = gt_unitsofmeasurex internationalartnos = gt_intern *** BEGIN OF CHANGE SAPP4840 * materiallongtext = gt_materiallongtext materiallongtext = gt_matlongtext *** END OF CHANGE SAPP4840 taxclassifications = gt_taxclass prtdata = gt_prtdata prtdatax = gt_prtdatax extensionin = lt_extn extensioninx = lt_extnx. IF ls_returntype NE gc_e. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' . IF NOT p_ecm_t IS INITIAL. ls_change_headerchange_no = p_ecm_t. ls_alt_datesalt_date = sydatum. ls_alt_datesvalid_from = sydatum. APPEND ls_alt_dates TO lt_alt_dates. CLEAR ls_alt_dates. ls_objmgrecalt_date = sydatum. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
76/124
3/21/2015
Gmail bom extend JCI program kodu
ls_objmgrecchg_objtyp = '4'. ls_objmgrecmaterial = ls_headdatamaterial. ls_objmgrecplant = p_plnt_t. APPEND ls_objmgrec TO lt_objmgrec. CLEAR ls_objmgrec. ls_effectivityvalid_from = sydatum. ls_effectivityvalid_to = '99991212'. APPEND ls_effectivity TO lt_effectivity. CALL FUNCTION 'ZP2F_CCAP_ECN_MAINTAIN' EXPORTING action = '2' change_header = ls_change_header TABLES alt_dates = lt_alt_dates objmgrec = lt_objmgrec effectivity = lt_effectivity. IF symsgty EQ 'E'. *Error message when no data found CALL FUNCTION 'FORMAT_MESSAGE' EXPORTING id = systmsgid no = systmsgno v1 = systmsgv1 v2 = systmsgv2 IMPORTING msg = lv_msg EXCEPTIONS OTHERS = 0. ENDIF. ENDIF. ENDIF. *To capture all messages IF ls_return IS NOT INITIAL. CLEAR: gs_messages. IF ls_returntype = gc_e. gs_messagesicon = '@0A@'. ELSE. gs_messagesicon = '@08@'. ENDIF. gs_messagesmatnr = gs_alv_materialmatnr. gs_messageswerks = p_plnt_t. gs_messageszp2f_oldmat = gs_alv_materialzp2f_oldmat. gs_messagesmessage = ls_returnmessage. APPEND gs_messages TO gt_messages. ENDIF. ENDIF. ENDLOOP. * into excel IF gt_ IS NOT INITIAL AND gv_down EQ gc_x. lv_fname = p_path. IF lv_fname CS '.xls' OR lv_fname CO '.XLS'. ELSE. CONCATENATE lv_fname '.xls' INTO lv_fname. CONDENSE lv_fname. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
77/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. IF p_path IS NOT INITIAL. CALL FUNCTION 'GUI_' EXPORTING * BIN_FILESIZE = filename = lv_fname filetype = 'DAT' * APPEND = ' ' write_field_separator = 'X' TABLES data_tab = gt_ fieldnames = lt_int_head. ELSE. CLEAR:gs_messages. gs_messagesicon = '@0A@'. gs_messagesmessage = text058. APPEND gs_messages TO gt_messages. ENDIF. REFRESH: gt_, lt_int_head. ENDIF. *To display all messages in ALV GRID IF gt_messages[] IS NOT INITIAL. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv. REFRESH: gt_messages. ENDIF. ENDFORM. " PLANT_MATERIAL_EXTN *&* *& Form GET_BAPI_UPDATE_TABLE *&* * text ** * >P_CLIENTDATA text * <P_CLIENTDATAX text ** FORM get_bapi_update_table USING wa_str TYPE any CHANGING wa_strx TYPE any. DATA: lv_len TYPE i, lv_sy_index TYPE i. FIELDSYMBOLS:
TYPE ANY,
TYPE ANY, <wa_str> TYPE ANY, <wa_strx> TYPE ANY. ASSIGN wa_str TO <wa_str>. ASSIGN wa_strx TO <wa_strx>. CLEAR lv_sy_index . lv_sy_index = 1. DO. ASSIGN COMPONENT syindex OF STRUCTURE <wa_str> TO
. IF sysubrc NE 0. EXIT. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
78/124
3/21/2015
Gmail bom extend JCI program kodu
lv_sy_index = syindex. IF
IS NOT INITIAL AND
NE '0' . ASSIGN COMPONENT lv_sy_index OF STRUCTURE <wa_strx> TO
. DESCRIBE FIELD
LENGTH lv_len IN CHARACTER MODE. IF lv_len = 1.
= 'X'. ELSE.
=
. ENDIF. ENDIF. lv_sy_index = lv_sy_index + 1. ENDDO. ENDFORM. " GET_BAPI_UPDATE_TABLE *&* *& Form GET_BAPI_UPDATE_TABLE1 *&* * text ** * >l_itab text * <l_itabx text ** FORM get_bapi_update_table1 USING l_itab TYPE ANY TABLE CHANGING l_itabx TYPE ANY TABLE. DATA: lv_len TYPE i, lv_sy_index TYPE i, lv_line TYPE REF TO data. FIELDSYMBOLS:
TYPE ANY TABLE,
TYPE ANY TABLE,
TYPE ANY,
TYPE ANY, <wa_str> TYPE ANY, <wa_strx> TYPE ANY. ASSIGN l_itab TO
. * Create dynamic work area and assign to table CREATE DATA lv_line LIKE LINE OF
. ASSIGN lv_line>* TO <wa_str>. ASSIGN l_itabx TO
. * Create dynamic work area and assign to table CREATE DATA lv_line LIKE LINE OF
. ASSIGN lv_line>* TO <wa_strx>. LOOP AT
INTO <wa_str>. CLEAR lv_sy_index . lv_sy_index = 1. DO. ASSIGN COMPONENT syindex OF STRUCTURE <wa_str> TO
. IF sysubrc NE 0. EXIT. ENDIF. IF
IS NOT INITIAL AND
NE '0'. ASSIGN COMPONENT lv_sy_index OF STRUCTURE <wa_strx> TO
. DESCRIBE FIELD
LENGTH lv_len IN CHARACTER MODE. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
79/124
3/21/2015
Gmail bom extend JCI program kodu
IF lv_len = 1.
= 'X'. ELSE.
=
. ENDIF. ENDIF. lv_sy_index = lv_sy_index + 1. ENDDO. INSERT <wa_strx> INTO TABLE
. CLEAR <wa_strx>. CLEAR <wa_str>. ENDLOOP. ENDFORM. " GET_BAPI_UPDATE_TABLE1 *&* *& Form EXTEND_BOM_TO_TARGET_PLANT *&* * text ** * > p1 text * < p2 text ** FORM extend_bom_to_target_plant . DATA: lv_multi. *To get MATNR and STLAN details from MAST . REFRESH: gt_aeoi_bom. *Get the BOM related objects from AEOI IF s_ecm_e IS NOT INITIAL. SELECT aennr objkt FROM aeoi INTO CORRESPONDING FIELDS OF TABLE gt_aeoi_bom WHERE aetyp = '02' AND aennr IN s_ecm_e. ENDIF. *To remove M from the objkt key LOOP AT gt_aeoi_bom INTO gs_aeoi_bom. gs_aeoi_bomstlnr = gs_aeoi_bomobjkt+1(8). MODIFY gt_aeoi_bom FROM gs_aeoi_bom. ENDLOOP. *To get MATNR and STLAN details from MAST . REFRESH: gt_bom_create. IF gt_aeoi_bom[] IS NOT INITIAL. SELECT matnr werks stlan FROM mast INTO CORRESPONDING FIELDS OF TABLE gt_bom_create FOR ALL ENTRIES IN gt_aeoi_bom WHERE stlnr = gt_aeoi_bomstlnr AND werks = p_plnt_e AND matnr IN s_mats_e AND stlan IN s_bom_e. ELSEIF s_mats_e IS NOT INITIAL. SELECT matnr werks stlan FROM mast INTO CORRESPONDING FIELDS OF TABLE gt_bom_create WHERE werks = p_plnt_e AND matnr IN s_mats_e AND stlan IN s_bom_e. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
80/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. IF gt_bom_create IS NOT INITIAL. SORT gt_bom_create. DELETE ADJACENT DUPLICATES FROM gt_bom_create COMPARING ALL FIELDS. *Get multi level BOm components IF p_bom_m EQ gc_x. lv_multi = gc_x. ELSE. CLEAR: lv_multi. ENDIF. LOOP AT gt_bom_create INTO gs_bom_create. gs_bom_createplant = p_plnt_t. IF p_bom_t IS NOT INITIAL. gs_bom_createbomuse = p_bom_t. ELSE. gs_bom_createbomuse = gs_bom_createstlan. ENDIF. gs_bom_createecn = p_ecm_t. MODIFY gt_bom_create FROM gs_bom_create. ENDLOOP. *To get BOM components in Multi levels LOOP AT gt_bom_create INTO gs_bom_create. REFRESH: gt_stb. *Call FM to get multi level BOM explosion CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING aumgb = 'X' capid = p_app_b datuv = sydatum ehndl = '1' mbwls = 'X' mehrs = lv_multi mmory = '1' mtnrv = gs_bom_creatematnr werks = p_plnt_e vrsvo = 'X' stlan = gs_bom_createstlan TABLES stb = gt_stb EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. *Delete the components which don't have BOM DELETE gt_stb WHERE xtlnr EQ space. MOVECORRESPONDING gs_bom_create TO gs_bom_create_final. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
81/124
3/21/2015
Gmail bom extend JCI program kodu
gs_bom_create_finalmatnr_c = gs_bom_creatematnr. APPEND gs_bom_create_final TO gt_bom_create_final . CLEAR: gs_bom_create_final. IF lv_multi EQ gc_x. LOOP AT gt_stb INTO gs_stb. MOVECORRESPONDING gs_bom_create TO gs_bom_create_final. gs_bom_create_finalmatnr_c = gs_stbidnrk. APPEND gs_bom_create_final TO gt_bom_create_final . ENDLOOP. ENDIF. ENDLOOP. SORT gt_bom_create_final. DELETE ADJACENT DUPLICATES FROM gt_bom_create_final COMPARING ALL FIELDS. IF gt_bom_create_final[] IS NOT INITIAL. *Logic to whether BOM is created already for this material and Plant SELECT matnr werks stlan stlal FROM mast INTO TABLE gt_mast FOR ALL ENTRIES IN gt_bom_create_final WHERE matnr = gt_bom_create_finalmatnr_c AND werks = gt_bom_create_finalplant AND stlan = gt_bom_create_finalbomuse. LOOP AT gt_bom_create_final INTO gs_bom_create_final. READ TABLE gt_mast INTO gs_mast WITH KEY matnr = gs_bom_create_finalmatnr_c werks = gs_bom_create_finalplant stlan = gs_bom_create_finalbomuse. IF sysubrc NE 0. gs_bom_create_finalsel = gc_x. ENDIF. MODIFY gt_bom_create_final FROM gs_bom_create_final. ENDLOOP. *ALV report to check the BOM details PERFORM build_fieldcatalog_bom. PERFORM build_layout1. PERFORM display_alv_bom. ELSE. *Error message when no data found MESSAGE text045 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ELSE. *Error message when no data found MESSAGE text045 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDFORM. " EXTEND_BOM_TO_TARGET_PLANT *&* *& Form GET_BOM_DETAILS *&* * text ** * >P_GS_BOM_FINAL_MATNR text * >P_P_PLNT_E text * >P_GS_BOM_FINAL_STLAN text https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
82/124
3/21/2015
Gmail bom extend JCI program kodu
** FORM get_bom_details USING p_gs_bom_final_matnr p_p_plnt_e p_gs_bom_final_stlan. DATA: lt_data TYPE TABLE OF csdep_dat, lt_desc TYPE TABLE OF csdep_desc. REFRESH: gt_stpo, gt_stko, gt_stpu, lt_data, lt_desc. CALL FUNCTION 'CSAP_MAT_BOM_READ' EXPORTING material = p_gs_bom_final_matnr plant = p_p_plnt_e bom_usage = p_gs_bom_final_stlan TABLES t_stpo = gt_stpo t_stko = gt_stko t_stpu = gt_stpu t_dep_data = lt_data t_dep_descr = lt_desc EXCEPTIONS error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. CALL FUNCTION 'CSAP_MAT_BOM_READ' EXPORTING material = p_gs_bom_final_matnr plant = p_p_plnt_e bom_usage = p_gs_bom_final_stlan alternative = '02' TABLES t_stpo = gt_stpo t_stko = gt_stko t_stpu = gt_stpu t_dep_data = lt_data t_dep_descr = lt_desc EXCEPTIONS error = 1 OTHERS = 2. ENDIF. IF gt_stpo[] IS NOT INITIAL. LOOP AT gt_stpo INTO gs_stpo. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = gs_stpocomponent IMPORTING output = gs_stpocomponent. MODIFY gt_stpo FROM gs_stpo. ENDLOOP. REFRESH:gt_target_plant, gt_target_mis. SELECT matnr werks FROM marc INTO TABLE gt_target_plant FOR ALL ENTRIES IN gt_stpo WHERE matnr = gt_stpocomponent AND werks = p_plnt_t. LOOP AT gt_stpo INTO gs_stpo. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
83/124
3/21/2015
Gmail bom extend JCI program kodu
READ TABLE gt_target_plant INTO gs_target_plant WITH KEY matnr = gs_stpocomponent. IF sysubrc NE 0. gs_target_mismatnr = gs_stpocomponent. APPEND gs_target_mis TO gt_target_mis. ENDIF. ENDLOOP. LOOP AT gt_stpo INTO gs_stpo. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_stpocomponent IMPORTING output = gs_stpocomponent. MODIFY gt_stpo FROM gs_stpo. ENDLOOP. ENDIF. ENDFORM. " GET_BOM_DETAILS *&* *& Form CREATE_BOM_TO_NEW_PLANT *&* * text ** * >P_GS_BOM_FINAL_MATNR text * >P_P_PLNT_E text * >P_GS_BOM_FINAL_STLAN text ** FORM create_bom_to_new_plant TABLES gt_legacy_mat STRUCTURE marc USING p_gs_bom_final_matnr p_p_plnt_t p_gs_bom_final_stlan. DATA: lv_from_date TYPE csap_mbomdatuv, lv_msg TYPE msg, lv_num TYPE i. *Move all the data to required table REFRESH: gt_stpo1. CLEAR: gs_stko1. LOOP AT gt_stpo INTO gs_stpo. CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = gs_stpovalid_from IMPORTING output = gs_stpovalid_from. MOVECORRESPONDING gs_stpo TO gs_stpo1. CLEAR: gs_stpo1item_guid, gs_stpo1itm_ident. *** BEGIN OF INSERTION SAPP4840 *** Clear Indicators so that indicators will set by default *** based on BOM usage during BOM Creation CLEAR: gs_stpo1rel_cost,gs_stpo1rel_engin,gs_stpo1rel_pmaint, gs_stpo1rel_prod,gs_stpo1rel_sales,gs_stpo1spare_part. *** END OF INSERTION SAPP4840 APPEND gs_stpo1 TO gt_stpo1. ENDLOOP. LOOP AT gt_stko INTO gs_stko. MOVECORRESPONDING gs_stko TO gs_stko1. IF p_bom_st IS NOT INITIAL. gs_stko1bom_status = p_bom_st. ENDIF. ENDLOOP. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
84/124
3/21/2015
Gmail bom extend JCI program kodu
lv_from_date = sydatum. IF NOT lv_from_date IS INITIAL. CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT' EXPORTING input = lv_from_date IMPORTING output = lv_from_date. ENDIF. IF p_bom_t IS NOT INITIAL. CLEAR: p_gs_bom_final_stlan. p_gs_bom_final_stlan = p_bom_t. ENDIF. *FM to create BOM for Target Plant CALL FUNCTION 'CSAP_MAT_BOM_CREATE' EXPORTING material = p_gs_bom_final_matnr plant = p_p_plnt_t bom_usage = p_gs_bom_final_stlan valid_from = lv_from_date change_no = p_ecm_t i_stko = gs_stko1 fl_commit_and_wait = 'X' fl_default_values = 'X' IMPORTING bom_no = gv_bom_no TABLES t_stpo = gt_stpo1 t_stpu = gt_stpu EXCEPTIONS error = 1 OTHERS = 2. IF sysubrc <> 0. *Error message when no data found CALL FUNCTION 'FORMAT_MESSAGE' EXPORTING id = systmsgid no = systmsgno v1 = systmsgv1 v2 = systmsgv2 IMPORTING msg = lv_msg EXCEPTIONS OTHERS = 0. IF systmsgty NE gc_e. CLEAR: lv_msg. ENDIF. IF gt_target_mis[] IS NOT INITIAL. CLEAR: lv_msg,lv_num. DESCRIBE TABLE gt_target_mis LINES lv_num. IF lv_num GT 1. CONCATENATE text128 p_plnt_t INTO lv_msg SEPARATED BY space. ELSE. READ TABLE gt_target_mis INTO gs_target_mis INDEX 1. CONCATENATE gs_target_mismatnr text127 p_plnt_t INTO https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
85/124
3/21/2015
Gmail bom extend JCI program kodu
lv_msg SEPARATED BY space. ENDIF. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmatnr = p_gs_bom_final_matnr. CLEAR gs_legacy_mat. READ TABLE gt_legacy_mat INTO gs_legacy_mat WITH KEY matnr = p_gs_bom_final_matnr. IF sysubrc EQ 0. gs_messageszp2f_oldmat = gs_legacy_matzp2f_oldmat. ENDIF. gs_messageswerks = p_p_plnt_t. gs_messagesmessage = lv_msg. APPEND gs_messages TO gt_messages. ELSE. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmatnr = p_gs_bom_final_matnr. CLEAR gs_legacy_mat. READ TABLE gt_legacy_mat INTO gs_legacy_mat WITH KEY matnr = p_gs_bom_final_matnr. IF sysubrc EQ 0. gs_messageszp2f_oldmat = gs_legacy_matzp2f_oldmat. ENDIF. gs_messageswerks = p_p_plnt_t. gs_messagesmessage = lv_msg. APPEND gs_messages TO gt_messages. ENDIF. ELSE. CLEAR: gs_messages. gs_messagesicon = '@08@'. gs_messagesmatnr = p_gs_bom_final_matnr. CLEAR gs_legacy_mat. READ TABLE gt_legacy_mat INTO gs_legacy_mat WITH KEY matnr = p_gs_bom_final_matnr. IF sysubrc EQ 0. gs_messageszp2f_oldmat = gs_legacy_matzp2f_oldmat. ENDIF. gs_messageswerks = p_p_plnt_t. gs_messagesdocnum = gv_bom_no. gs_messagesmessage = text055. APPEND gs_messages TO gt_messages. ENDIF. ENDFORM. " CREATE_BOM_TO_NEW_PLANT *&* *& Form GET_MATERIAL_ALL *&* * text ** * > p1 text * < p2 text ** FORM get_material_all . DATA: lt_unitof_m1 TYPE TABLE OF bapi_marm_ga , ls_unitof_m1 TYPE bapi_marm_ga, lt_intern1 TYPE TABLE OF bapi_mean_ga, ls_intern1 TYPE bapi_mean_ga, lt_materiallongtext1 TYPE TABLE OF bapi_mltx_ga, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
86/124
3/21/2015
Gmail bom extend JCI program kodu
ls_materiallongtext1 TYPE bapi_mltx_ga, lt_taxclass1 TYPE TABLE OF bapi_mlan_ga, ls_taxclass1 TYPE bapi_mlan_ga, ls_warehousenumberdata1 TYPE bapi_mlgn_ga. DATA: ls_prtdata1 TYPE bapi_mfhm_ga, lv_bwkey_t TYPE mbewbwkey. CLEAR: gs_clientdata1, gs_plantdata1, gs_forecastparameters1, gs_storagelocationdata1, gs_valuationdata1,gs_salesdata1, ls_prtdata1, ls_warehousenumberdata1. CLEAR: gs_clientdata, gs_plantdata, gs_forecastparameters, gs_storagelocationdata, gs_valuationdata,gs_salesdata, gt_prtdata. REFRESH: lt_unitof_m1, lt_intern1,lt_materiallongtext1, lt_taxclass1, gt_prtdata, gt_unitsofmeasure, gt_intern, gt_materiallongtext, gt_taxclass. CLEAR: gv_error. SELECT SINGLE bwkey FROM mbew INTO lv_bwkey_t WHERE matnr = gs_alv_materialmat_r AND bwkey = gs_alv_materialbwkey. IF sysubrc NE 0. CLEAR: gs_alv_materialbwkey. ENDIF. *Getting data for Target plant and ref Material CALL FUNCTION 'BAPI_MATERIAL_GET_ALL' EXPORTING material = gs_alv_materialmat_r val_area = gs_alv_materialbwkey plant = p_plnt_t stge_loc = gs_alv_materiallgpro salesorg = gs_alv_materialvkorg distr_chan = gs_alv_materialvtweg whsenumber = gs_alv_materiallgnum IMPORTING clientdata = gs_clientdata1 plantdata = gs_plantdata1 forecastparameters = gs_forecastparameters1 storagelocationdata = gs_storagelocationdata1 valuationdata = gs_valuationdata1 warehousenumberdata = ls_warehousenumberdata1 salesdata = gs_salesdata1 prtdata = ls_prtdata1 TABLES unitsofmeasure = lt_unitof_m1 internationalartnos = lt_intern1 materiallongtext = lt_materiallongtext1 taxclassifications = lt_taxclass1. IF gs_clientdata1 IS NOT INITIAL AND gs_plantdata1 IS NOT INITIAL. *Getting data for Target plant and ref Material CLEAR:gs_clientdata1. CALL FUNCTION 'BAPI_MATERIAL_GET_ALL' EXPORTING material = gs_alv_materialmatnr IMPORTING clientdata = gs_clientdata1. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
87/124
3/21/2015
Gmail bom extend JCI program kodu
MOVECORRESPONDING: gs_clientdata1 TO gs_clientdata, gs_plantdata1 TO gs_plantdata, gs_forecastparameters1 TO gs_forecastparameters, gs_storagelocationdata1 TO gs_storagelocationdata, gs_valuationdata1 TO gs_valuationdata, gs_salesdata1 TO gs_salesdata, ls_warehousenumberdata1 TO gs_warehousenumberdata. MOVECORRESPONDING ls_prtdata1 TO gs_prtdata. APPEND gs_prtdata TO gt_prtdata. LOOP AT lt_unitof_m1 INTO ls_unitof_m1. MOVECORRESPONDING ls_unitof_m1 TO gs_unitsofmeasure. APPEND gs_unitsofmeasure TO gt_unitsofmeasure. ENDLOOP. LOOP AT lt_intern1 INTO ls_intern1. MOVECORRESPONDING ls_intern1 TO gs_intern. APPEND gs_intern TO gt_intern. ENDLOOP. LOOP AT lt_materiallongtext1 INTO ls_materiallongtext1. MOVECORRESPONDING ls_materiallongtext1 TO gs_materiallongtext. APPEND gs_materiallongtext TO gt_materiallongtext. ENDLOOP. LOOP AT lt_taxclass1 INTO ls_taxclass1. MOVECORRESPONDING ls_taxclass1 TO gs_taxclass. APPEND gs_taxclass TO gt_taxclass. ENDLOOP. ELSE. *Getting data for source Plant and Source Material READ TABLE gt_bwkey INTO gs_bwkey WITH KEY werks = p_plnt_e. IF sysubrc EQ 0. gs_alv_materialbwkey = gs_bwkeybwkey. ENDIF. READ TABLE gt_marc_e INTO gs_marc_e WITH KEY matnr = gs_alv_materialmatnr. IF sysubrc EQ 0. gs_alv_materiallgpro = gs_marc_elgpro. ENDIF. SELECT SINGLE bwkey FROM mbew INTO lv_bwkey_t WHERE matnr = gs_alv_materialmatnr AND bwkey = gs_alv_materialbwkey. IF sysubrc NE 0. CLEAR: gs_alv_materialbwkey. ENDIF. CALL FUNCTION 'BAPI_MATERIAL_GET_ALL' EXPORTING material = gs_alv_materialmatnr val_area = gs_alv_materialbwkey plant = p_plnt_e stge_loc = gs_alv_materiallgpro * salesorg = gs_alv_materialvkorg * distr_chan = gs_alv_materialvtweg * whsenumber = gs_alv_materiallgnum IMPORTING clientdata = gs_clientdata1 https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
88/124
3/21/2015
Gmail bom extend JCI program kodu
plantdata = gs_plantdata1 forecastparameters = gs_forecastparameters1 storagelocationdata = gs_storagelocationdata1 valuationdata = gs_valuationdata1 warehousenumberdata = ls_warehousenumberdata1 salesdata = gs_salesdata1 prtdata = ls_prtdata1 TABLES unitsofmeasure = lt_unitof_m1 internationalartnos = lt_intern1 materiallongtext = lt_materiallongtext1 taxclassifications = lt_taxclass1. IF gs_clientdata1 IS NOT INITIAL AND gs_plantdata1 IS NOT INITIAL. MOVECORRESPONDING: gs_clientdata1 TO gs_clientdata, gs_plantdata1 TO gs_plantdata, gs_forecastparameters1 TO gs_forecastparameters, gs_storagelocationdata1 TO gs_storagelocationdata, gs_valuationdata1 TO gs_valuationdata, gs_salesdata1 TO gs_salesdata, ls_warehousenumberdata1 TO gs_warehousenumberdata. MOVECORRESPONDING ls_prtdata1 TO gs_prtdata. APPEND gs_prtdata TO gt_prtdata. LOOP AT lt_unitof_m1 INTO ls_unitof_m1. MOVECORRESPONDING ls_unitof_m1 TO gs_unitsofmeasure. APPEND gs_unitsofmeasure TO gt_unitsofmeasure. ENDLOOP. LOOP AT lt_intern1 INTO ls_intern1. MOVECORRESPONDING ls_intern1 TO gs_intern. APPEND gs_intern TO gt_intern. ENDLOOP. LOOP AT lt_materiallongtext1 INTO ls_materiallongtext1. MOVECORRESPONDING ls_materiallongtext1 TO gs_materiallongtext. APPEND gs_materiallongtext TO gt_materiallongtext. ENDLOOP. LOOP AT lt_taxclass1 INTO ls_taxclass1. MOVECORRESPONDING ls_taxclass1 TO gs_taxclass. APPEND gs_taxclass TO gt_taxclass. ENDLOOP. ELSE. *Error message when no data found CLEAR: gs_messages. gv_error = gc_x. gs_messagesicon = '@0A@'. gs_messagesmessage = text050. APPEND gs_messages TO gt_messages. ENDIF. ENDIF. ENDFORM. " GET_MATERIAL_ALL *&* *& Form BUILD_FIELDCATALOG_BOM *&* * text ** * > p1 text * < p2 text ** https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
89/124
3/21/2015
Gmail bom extend JCI program kodu
FORM build_fieldcatalog_bom . REFRESH: gt_fieldcat_bom. gs_fieldcat_bomfieldname = gc_sel. gs_fieldcat_bomcheckbox = gc_x. gs_fieldcat_bomjust = 'C'. gs_fieldcat_bomedit = gc_x. gs_fieldcat_bomseltext_m = text118. APPEND gs_fieldcat_bom TO gt_fieldcat_bom. mcat2 gc_matnr text125. mcat2 gc_mat_c text133. mcat2 gc_werks text068. mcat2 gc_stlan text115 . mcat2 gc_plant text073. mcat2 gc_bomuse text117. mcat2 gc_ecm text116. ENDFORM. " BUILD_FIELDCATALOG_BOM *&* *& Form DISPLAY_ALV_BOM *&* * text ** * > p1 text * < p2 text ** FORM display_alv_bom . gv_repid = syrepid. *FM to display ALV for BOM Extn to Plant CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = gv_repid i_callback_pf_status_set = 'PF_STATUS1' i_callback__command = '_COMMAND1' i_grid_title = text063 is_layout = gs_layout1 it_fieldcat = gt_fieldcat_bom i_default = 'X' i_save = ' ' TABLES t_outtab = gt_bom_create_final EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. ENDFORM. " DISPLAY_ALV_BOM *&* *& Form _command *&* * text ** * actions on ALV FORM _command1 USING r_ucomm TYPE syucomm selfield TYPE slis_selfield. CASE r_ucomm. *If tries to extend a BOM to another Plant https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
90/124
3/21/2015
Gmail bom extend JCI program kodu
WHEN 'EASY'. PERFORM bom_extn. WHEN 'DWN' . PERFORM bom_extn_down. WHEN 'SEL'. PERFORM select_all_entries CHANGING gt_bom_create_final[]. WHEN 'DESEL'. PERFORM deselect_all_entries CHANGING gt_bom_create_final[]. WHEN OTHERS. ENDCASE. ENDFORM. "_command "_command* * FORM PFSTATUS * ** *Form for settings the pf status to the alv FORM pf_status1 USING rt_extab TYPE slis_t_extab. *PF Status for ALV report SET PFSTATUS 'STANDARD'. ENDFORM. "pfstatus *&* *& Form BOM_EXTN *&* * text ** * > p1 text * < p2 text ** FORM bom_extn . DATA: ref1 TYPE REF TO cl_gui_alv_grid. *** BEGIN OF INSERTION SAPP4600 TYPES: BEGIN OF ty_usobj, usobj TYPE aeoiusobj, END OF ty_usobj. DATA: lv_datuv TYPE aenrdatuv, ls_datuv TYPE aenr, ls_aeoi TYPE aeoi, lt_usobj TYPE TABLE OF ty_usobj, ls_usobj TYPE ty_usobj, lt_aeoi TYPE TABLE OF aeoi, ls_aedt LIKE LINE OF gt_aedt. *** END OF INSERTION SAPP4600 *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = ref1. *To get the ALV grid details CALL METHOD ref1>check_changed_data. REFRESH gt_legacy_mat[]. IF NOT gt_bom_create_final[] IS INITIAL. SELECT matnr werks zp2f_oldmat FROM marc INTO CORRESPONDING FIELDS OF TABLE gt_legacy_mat FOR ALL ENTRIES IN gt_bom_create_final WHERE matnr EQ gt_bom_create_finalmatnr_c AND werks EQ p_plnt_t. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
91/124
3/21/2015
Gmail bom extend JCI program kodu
*** BEGIN OF INSERTION SAPP4600 IF p_alt_d IS NOT INITIAL AND p_alt_c IS NOT INITIAL. READ TABLE gt_bom_create_final WITH KEY sel = gc_x TRANSPORTING NO FIELDS. IF sysubrc EQ 0. CLEAR: lv_datuv, ls_datuv. SELECT SINGLE * FROM aenr INTO ls_datuv WHERE aennr = p_ecm_t. IF sysubrc EQ 0. lv_datuv = ls_datuvdatuv. ls_datuvdatuv = p_alt_d. MODIFY aenr FROM ls_datuv. COMMIT WORK. ENDIF. ENDIF. ENDIF. *** END OF INSERTION SAPP4600 *To get BOM components in Multi levels LOOP AT gt_bom_create_final INTO gs_bom_create_final WHERE sel = gc_x. *To get all the values in an internal table for Main Material PERFORM get_bom_details USING gs_bom_create_finalmatnr_c p_plnt_e gs_bom_create_finalstlan. PERFORM create_bom_to_new_plant TABLES gt_legacy_mat USING gs_bom_create_finalmatnr_c p_plnt_t gs_bom_create_finalstlan. ENDLOOP. *** BEGIN OF INSERTION SAPP4600 READ TABLE gt_bom_create_final WITH KEY sel = gc_x TRANSPORTING NO FIELDS. IF sysubrc EQ 0. WAIT UP TO 5 SECONDS. IF p_alt_d IS NOT INITIAL AND p_alt_c IS NOT INITIAL. CLEAR: ls_usobj. REFRESH: lt_usobj. LOOP AT gt_bom_create_final INTO gs_bom_create_final WHERE sel = gc_x. CONCATENATE gs_bom_create_finalmatnr_c p_plnt_t gs_bom_create_finalstlan INTO ls_usobjusobj. APPEND ls_usobj TO lt_usobj. ENDLOOP. CLEAR: ls_aeoi. REFRESH: lt_aeoi. IF lt_usobj[] IS NOT INITIAL. SELECT * FROM aeoi INTO TABLE lt_aeoi FOR ALL ENTRIES IN lt_usobj WHERE aennr = p_ecm_t AND aetyp = '02' AND usobj = lt_usobjusobj. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
92/124
3/21/2015
Gmail bom extend JCI program kodu
LOOP AT lt_aeoi INTO ls_aeoi. READ TABLE gt_aedt INTO ls_aedt WITH KEY aennr = p_ecm_t. IF sysubrc EQ 0. ls_aeoiaedtz = ls_aedtaedtz. MODIFY lt_aeoi FROM ls_aeoi. ENDIF. ENDLOOP. IF lt_aeoi[] IS NOT INITIAL. MODIFY aeoi FROM TABLE lt_aeoi. COMMIT WORK. ENDIF. IF ls_datuv IS NOT INITIAL. ls_datuvdatuv = lv_datuv. MODIFY aenr FROM ls_datuv. COMMIT WORK. ENDIF. ENDIF. ENDIF. *** END OF INSERTION SAPP4600 *To display all messages in ALV GRID IF gt_messages[] IS NOT INITIAL. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv. REFRESH: gt_messages. ENDIF. ENDFORM. " BOM_EXTN *&* *& Form BOM_EXTN_DOWN *&* * text ** * > p1 text * < p2 text ** FORM bom_extn_down . DATA: lv_multi, lv_xtlnr TYPE stpoxxtlnr. DATA: lv_ref1 TYPE REF TO cl_gui_alv_grid. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_ref1. *To get the ALV grid details CALL METHOD lv_ref1>check_changed_data. *Get multi level BOm components IF p_bom_m EQ gc_x. lv_multi = gc_x. ELSE. CLEAR: lv_multi. ENDIF. *To get BOM components in Multi levels https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
93/124
3/21/2015
Gmail bom extend JCI program kodu
REFRESH: gt_stb, gt_bom_down. LOOP AT gt_bom_create_final INTO gs_bom_create_final WHERE sel = gc_x. *Call FM to get multi level BOM explosion CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING aumgb = 'X' capid = p_app_b datuv = sydatum ehndl = '1' mbwls = 'X' mehrs = lv_multi mmory = '1' mtnrv = gs_bom_create_finalmatnr_c werks = p_plnt_e vrsvo = 'X' stlan = gs_bom_create_finalstlan TABLES stb = gt_stb EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. *To get all the values in an internal table for Main Material PERFORM get_bom_details USING gs_bom_create_finalmatnr_c p_plnt_e gs_bom_create_finalstlan. LOOP AT gt_stko INTO gs_stko. MOVECORRESPONDING gs_stko TO gt_bom_down. ENDLOOP. LOOP AT gt_stb INTO gs_stb. MOVECORRESPONDING gs_stb TO gt_bom_down. CLEAR:lv_xtlnr. lv_xtlnr = gs_stbstlnr. CLEAR: gs_stb. READ TABLE gt_stb INTO gs_stb WITH KEY xtlnr = lv_xtlnr. IF sysubrc EQ 0. gt_bom_downmatnr_c = gs_stbidnrk. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gt_bom_downmatnr_c IMPORTING output = gt_bom_downmatnr_c. ELSE. gt_bom_downmatnr_c = gs_bom_create_finalmatnr_c. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gt_bom_downmatnr_c IMPORTING https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
94/124
3/21/2015
Gmail bom extend JCI program kodu
output = gt_bom_downmatnr_c. ENDIF. gt_bom_downmatnr = gs_bom_create_finalmatnr_c. gt_bom_downwerks = p_plnt_t. IF p_bom_t IS NOT INITIAL. gt_bom_downstlan = p_bom_t. ENDIF. IF p_bom_st IS NOT INITIAL. gt_bom_downbom_status = p_bom_st. ENDIF. gt_bom_downchg_no = p_ecm_t. gt_bom_downsel = gc_x. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gt_bom_downidnrk IMPORTING output = gt_bom_downidnrk. APPEND gt_bom_down. ENDLOOP. ENDLOOP. SORT gt_bom_down ASCENDING BY matnr werks stlan stufe wegxx. IF gt_bom_down[] IS NOT INITIAL. PERFORM build_layout1. PERFORM build_catalog_bom_down. PERFORM display_bom_down. ENDIF. ENDFORM. " BOM_EXTN_DOWN *&* *& Form BUILD_CATALOG_BOM_DOWN *&* * text ** * > p1 text * < p2 text ** FORM build_catalog_bom_down . REFRESH: gt_fieldcat1. gv_repid = syrepid. *FM to create field catalog for final internal table CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = gv_repid i_internal_tabname = 'GT_BOM_DOWN' i_inclname = gv_repid i_bying_buffer = gc_x CHANGING ct_fieldcat = gt_fieldcat1 EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. LOOP AT gt_fieldcat1 INTO gs_fieldcat1. IF gs_fieldcat1fieldname = 'MATNR'. gs_fieldcat1seltext_m = text125. gs_fieldcat1seltext_s = text125. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
95/124
3/21/2015
Gmail bom extend JCI program kodu
gs_fieldcat1reptext_ddic = text125. gs_fieldcat1seltext_l = text125. ENDIF. IF gs_fieldcat1fieldname = 'SEL'. gs_fieldcat1seltext_m = text118. gs_fieldcat1checkbox = gc_x. gs_fieldcat1edit = gc_x. ENDIF. IF gs_fieldcat1fieldname = 'MATNR_C'. CLEAR :gs_fieldcat1seltext_m, gs_fieldcat1seltext_s, gs_fieldcat1reptext_ddic, gs_fieldcat1ref_fieldname, gs_fieldcat1ref_tabname. gs_fieldcat1seltext_l = text134. ENDIF. IF gs_fieldcat1fieldname = 'IDNRK'. CLEAR :gs_fieldcat1seltext_m, gs_fieldcat1seltext_s, gs_fieldcat1reptext_ddic, gs_fieldcat1ref_fieldname, gs_fieldcat1ref_tabname. gs_fieldcat1seltext_l = text135. ENDIF. MODIFY gt_fieldcat1 FROM gs_fieldcat1. ENDLOOP. ENDFORM. " BUILD_CATALOG_BOM_DOWN *&* *& Form DISPLAY_BOM_DOWN *&* * text ** * > p1 text * < p2 text ** FORM display_bom_down . gv_repid = syrepid. *FM to display ALV for Material Extn to Plant CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = gv_repid i_callback_pf_status_set = 'PF_STATUS2' i_callback__command = '_COMMAND2' i_grid_title = text063 is_layout = gs_layout1 it_fieldcat = gt_fieldcat1 i_default = 'X' i_save = ' ' TABLES t_outtab = gt_bom_down EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. ENDFORM. " DISPLAY_BOM_DOWN *&* *& Form _command https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
96/124
3/21/2015
Gmail bom extend JCI program kodu
*&* * text ** * actions on ALV FORM _command2 USING r_ucomm TYPE syucomm selfield TYPE slis_selfield. CASE r_ucomm. WHEN 'DWN' . PERFORM bom_. WHEN 'SEL'. PERFORM select_all_entries_bom_dwn CHANGING gt_bom_down[]. WHEN 'DESEL'. PERFORM deselect_all_entries_bom_dwn CHANGING gt_bom_down[]. WHEN OTHERS. ENDCASE. ENDFORM. "_command "_command* * FORM PFSTATUS * ** *Form for settings the pf status to the alv FORM pf_status2 USING rt_extab TYPE slis_t_extab. *PF Status for ALV report SET PFSTATUS 'STANDARD1'. ENDFORM. "pfstatus *& *&* *& Form BOM_ *&* * text ** * > p1 text * < p2 text ** FORM bom_ . DATA: lv_fname TYPE string. TYPES : BEGIN OF ty_int_head, field1(20) TYPE c, " Header Data END OF ty_int_head. DATA: lt_int_head TYPE TABLE OF ty_int_head, ls_int_head TYPE ty_int_head. DATA: lv_ref1 TYPE REF TO cl_gui_alv_grid. * into excel IF gt_bom_down IS NOT INITIAL. lv_fname = p_path. IF lv_fname CS '.xls' OR lv_fname CO '.XLS'. ELSE. CONCATENATE lv_fname '.xls' INTO lv_fname. CONDENSE lv_fname. ENDIF. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_ref1. *To get the ALV grid details CALL METHOD lv_ref1>check_changed_data. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
97/124
3/21/2015
Gmail bom extend JCI program kodu
IF p_path IS NOT INITIAL. REFRESH: lt_int_head. mcat1 text067. mcat1 text119. mcat1 text124. mcat1 text122. mcat1 text121. mcat1 text120. mcat1 text123. REFRESH: gt_bom_down1. LOOP AT gt_bom_down WHERE sel = gc_x. MOVECORRESPONDING gt_bom_down TO gs_bom_down1. APPEND gs_bom_down1 TO gt_bom_down1. ENDLOOP. CALL FUNCTION 'GUI_' EXPORTING * BIN_FILESIZE = filename = lv_fname filetype = 'DAT' * APPEND = ' ' write_field_separator = 'X' TABLES data_tab = gt_bom_down1 fieldnames = lt_int_head. ELSE. CLEAR:gs_messages. gs_messagesicon = '@0A@'. gs_messagesmessage = text058. APPEND gs_messages TO gt_messages. ENDIF. ENDIF. *To display all messages in ALV GRID IF gt_messages[] IS NOT INITIAL. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv. REFRESH: gt_messages. ENDIF. ENDFORM. " BOM_ *&* *& Form SELECT_ALL_ENTRIES *&* * text ** * <P_GT_BOM_CREATE_FINAL[] text * FORM select_all_entries CHANGING p_gt_bom_create_final TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab TYPE ty_bom_final2. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
98/124
3/21/2015
Gmail bom extend JCI program kodu
IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_bom_create_final INTO ls_outtab. ls_outtabsel = 'X'. MODIFY p_gt_bom_create_final FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " SELECT_ALL_ENTRIES *&* *& Form DESELECT_ALL_ENTRIES *&* * text ** * <P_GT_BOM_CREATE_FINAL[] text ** FORM deselect_all_entries CHANGING p_gt_bom_create_final TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab TYPE ty_bom_final2. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_bom_create_final INTO ls_outtab. ls_outtabsel = ' '. MODIFY p_gt_bom_create_final FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " DESELECT_ALL_ENTRIES *&* *& Form SELECT_ALL_ENTRIES_MAT_EXTN *&* * text ** * <P_GT_ALV_MATERIAL[] text ** https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
99/124
3/21/2015
Gmail bom extend JCI program kodu
FORM select_all_entries_mat_extn CHANGING p_gt_alv_material TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_alv_material. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_alv_material INTO ls_outtab. ls_outtabsel = 'X'. MODIFY p_gt_alv_material FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " SELECT_ALL_ENTRIES_MAT_EXTN *&* *& Form DESELECT_ALL_ENTRIES_MAT_EXTN *&* * text ** * <P_GT_ALV_MATERIAL[] text ** FORM deselect_all_entries_mat_extn CHANGING p_gt_alv_material TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_alv_material. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_alv_material INTO ls_outtab. ls_outtabsel = ' '. MODIFY p_gt_alv_material FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
100/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. ENDFORM. " DESELECT_ALL_ENTRIES_MAT_EXTN *&* *& Form SELECT_ALL_ENTRIES_BOM_DWN *&* * text ** * <P_GT_BOM_DOWN[] text ** FORM select_all_entries_bom_dwn CHANGING p_gt_bom_down TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_bom_down. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_bom_down INTO ls_outtab. ls_outtabsel = 'X'. MODIFY p_gt_bom_down FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " SELECT_ALL_ENTRIES_BOM_DWN *&* *& Form DESELECT_ALL_ENTRIES_BOM_DWN *&* * text ** * <P_GT_BOM_DOWN[] text ** FORM deselect_all_entries_bom_dwn CHANGING p_gt_bom_down TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_bom_down. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
101/124
3/21/2015
Gmail bom extend JCI program kodu
e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_bom_down INTO ls_outtab. ls_outtabsel = ' '. MODIFY p_gt_bom_down FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " DESELECT_ALL_ENTRIES_BOM_DWN *&* *& Form ASSIGN_BOM_TO_TARGET_PLANT *&* * text ** * > p1 text * < p2 text ** FORM assign_bom_to_target_plant . *To get MATNR and STLAN details from MAST . REFRESH: gt_aeoi_bom[]. *Get the BOM related objects from AEOI IF s_ecm_e IS NOT INITIAL. SELECT aennr objkt FROM aeoi INTO CORRESPONDING FIELDS OF TABLE gt_aeoi_bom WHERE aetyp = '02' AND aennr IN s_ecm_e. ENDIF. *To remove M from the objkt key CLEAR gs_aeoi_bom. LOOP AT gt_aeoi_bom INTO gs_aeoi_bom. gs_aeoi_bomstlnr = gs_aeoi_bomobjkt+1(8). MODIFY gt_aeoi_bom FROM gs_aeoi_bom. CLEAR gs_aeoi_bom. ENDLOOP. *To get MATNR and STLAN details from MAST . REFRESH: gt_bom_ext[]. IF gt_aeoi_bom[] IS NOT INITIAL. SELECT matnr werks stlan stlal FROM mast INTO CORRESPONDING FIELDS OF TABLE gt_bom_ext FOR ALL ENTRIES IN gt_aeoi_bom WHERE stlnr = gt_aeoi_bomstlnr AND werks = p_plnt_e AND matnr IN s_mats_e AND stlan IN s_bom_e. ELSEIF s_mats_e IS NOT INITIAL. SELECT matnr https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
102/124
3/21/2015
Gmail bom extend JCI program kodu
werks stlan stlal FROM mast INTO CORRESPONDING FIELDS OF TABLE gt_bom_ext WHERE werks = p_plnt_e AND matnr IN s_mats_e AND stlan IN s_bom_e. ENDIF. IF gt_bom_ext IS NOT INITIAL. SORT gt_bom_ext. DELETE ADJACENT DUPLICATES FROM gt_bom_ext COMPARING ALL FIELDS. REFRESH gt_bom_ext_final[]. CLEAR: gs_bom_ext,gs_bom_ext_final. LOOP AT gt_bom_ext INTO gs_bom_ext. gs_bom_extplant = p_plnt_t. MODIFY gt_bom_ext FROM gs_bom_ext. MOVECORRESPONDING gs_bom_ext TO gs_bom_ext_final. APPEND gs_bom_ext_final TO gt_bom_ext_final . CLEAR: gs_bom_ext,gs_bom_ext_final. ENDLOOP. SORT gt_bom_ext_final. DELETE ADJACENT DUPLICATES FROM gt_bom_ext_final COMPARING ALL FIELDS. REFRESH gt_mast[]. IF gt_bom_ext_final[] IS NOT INITIAL. *Logic to whether BOM is assigned already for this material and Plant SELECT matnr werks stlan stlal FROM mast INTO TABLE gt_mast FOR ALL ENTRIES IN gt_bom_ext_final WHERE matnr = gt_bom_ext_finalmatnr AND werks = gt_bom_ext_finalplant AND stlan = gt_bom_ext_finalstlan AND stlal = gt_bom_ext_finalstlal. CLEAR gs_bom_ext_final. LOOP AT gt_bom_ext_final INTO gs_bom_ext_final. CLEAR gs_mast. READ TABLE gt_mast INTO gs_mast WITH KEY matnr = gs_bom_ext_finalmatnr werks = gs_bom_ext_finalplant stlan = gs_bom_ext_finalstlan stlal = gs_bom_ext_finalstlal. IF sysubrc NE 0. gs_bom_ext_finalsel = gc_x. ENDIF. MODIFY gt_bom_ext_final FROM gs_bom_ext_final. CLEAR:gs_bom_ext_final,gs_mast. ENDLOOP. *ALV report to check the BOM details PERFORM build_fieldcatalog_ext_bom. PERFORM build_layout1. PERFORM display_alv_ext_bom. ELSE. *Error message when no data found https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
103/124
3/21/2015
Gmail bom extend JCI program kodu
MESSAGE text045 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ELSE. *Error message when no data found MESSAGE text045 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDFORM. " ASSIGN_BOM_TO_TARGET_PLANT *&* *& Form BUILD_FIELDCATALOG_EXT_BOM *&* * text ** * > p1 text * < p2 text ** FORM build_fieldcatalog_ext_bom . REFRESH: gt_fieldcat_ext_bom. gs_fieldcat_ext_bomfieldname = gc_sel. gs_fieldcat_ext_bomcheckbox = gc_x. gs_fieldcat_ext_bomjust = 'C'. gs_fieldcat_ext_bomedit = gc_x. gs_fieldcat_ext_bomseltext_m = text118. APPEND gs_fieldcat_ext_bom TO gt_fieldcat_ext_bom. mcat3 gc_matnr text067. mcat3 gc_werks text068. mcat3 gc_stlan text115. mcat3 gc_stlal text137. mcat3 gc_plant text073. ENDFORM. " BUILD_FIELDCATALOG_EXT_BOM *&* *& Form DISPLAY_ALV_EXT_BOM *&* * text ** * > p1 text * < p2 text ** FORM display_alv_ext_bom . gv_repid = syrepid. *FM to display ALV for BOM assignment to Plant CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = gv_repid i_callback_pf_status_set = 'PF_STATUS3' i_callback__command = '_COMMAND3' i_grid_title = text136 is_layout = gs_layout1 it_fieldcat = gt_fieldcat_ext_bom i_default = 'X' i_save = ' ' TABLES t_outtab = gt_bom_ext_final https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
104/124
3/21/2015
Gmail bom extend JCI program kodu
EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. ENDFORM. " DISPLAY_ALV_EXT_BOM *&* *& Form _command *&* * text ** * actions on ALV FORM _command3 USING r_ucomm TYPE syucomm selfield TYPE slis_selfield. CASE r_ucomm. *If tries to assign a BOM to another Plant WHEN 'EASY'. PERFORM bom_assign_plnt. WHEN 'SEL'. PERFORM select_all_entries_bomext CHANGING gt_bom_ext_final[]. WHEN 'DESEL'. PERFORM deselect_all_entries_bomext CHANGING gt_bom_ext_final[]. WHEN OTHERS. ENDCASE. ENDFORM. "_command ** * FORM PFSTATUS * ** *Form for settings the pf status to the alv FORM pf_status3 USING rt_extab TYPE slis_t_extab. *PF Status for ALV report SET PFSTATUS 'STANDARD3'. ENDFORM. "pfstatus *&* *& Form SELECT_ALL_ENTRIES_BOMEXT *&* * text ** * <P_GT_BOM_EXT_FINAL[] text ** FORM select_all_entries_bomext CHANGING p_gt_bom_ext_final TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab TYPE ty_bom_ext_final. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
105/124
3/21/2015
Gmail bom extend JCI program kodu
CLEAR ls_outtab. LOOP AT p_gt_bom_ext_final INTO ls_outtab. ls_outtabsel = 'X'. MODIFY p_gt_bom_ext_final FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " SELECT_ALL_ENTRIES_BOMEXT *&* *& Form DESELECT_ALL_ENTRIES_BOMEXT *&* * text ** * <P_GT_BOM_EXT_FINAL[] text ** FORM deselect_all_entries_bomext CHANGING p_gt_bom_ext_final TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab TYPE ty_bom_ext_final. DATA: l_valid TYPE c. *For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = l_valid. IF l_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_bom_ext_final INTO ls_outtab. ls_outtabsel = ' '. MODIFY p_gt_bom_ext_final FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " DESELECT_ALL_ENTRIES_BOMEXT *&* *& Form BOM_ASSIGN_PLNT *&* * text ** * > p1 text * < p2 text ** FORM bom_assign_plnt . DATA: ref1 TYPE REF TO cl_gui_alv_grid. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
106/124
3/21/2015
Gmail bom extend JCI program kodu
*For capturing the selected data CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = ref1. *To get the ALV grid details CALL METHOD ref1>check_changed_data. REFRESH gt_legacy_mat[]. IF NOT gt_bom_ext_final[] IS INITIAL. SELECT matnr werks zp2f_oldmat FROM marc INTO CORRESPONDING FIELDS OF TABLE gt_legacy_mat FOR ALL ENTRIES IN gt_bom_ext_final WHERE matnr EQ gt_bom_ext_finalmatnr AND werks EQ p_plnt_t. ENDIF. CLEAR gs_bom_ext_final. LOOP AT gt_bom_ext_final INTO gs_bom_ext_final WHERE sel = gc_x. **To get all the values in an internal table for Main Material PERFORM fetch_bom_details USING gs_bom_ext_finalmatnr p_plnt_e gs_bom_ext_finalstlan gs_bom_ext_finalstlal. PERFORM assign_bom_to_new_plant TABLES gt_legacy_mat USING gs_bom_ext_finalmatnr p_plnt_t gs_bom_ext_finalstlan gs_bom_ext_finalstlal. CLEAR gs_bom_ext_final. ENDLOOP. *To display all messages in ALV GRID IF gt_messages[] IS NOT INITIAL. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv. REFRESH: gt_messages. ENDIF. ENDFORM. " BOM_ASSIGN_PLNT *&* *& Form ASSIGN_BOM_TO_NEW_PLANT *&* * text ** * >P_GT_LEGACY_MAT text * >P_GS_BOM_EXT_FINAL_MATNR text * >P_P_PLNT_T text * >P_GS_BOM_EXT_FINAL_STLAN text * >P_GS_BOM_EXT_FINAL_STLAL text ** FORM assign_bom_to_new_plant TABLES gt_legacy_mat STRUCTURE marc USING p_gs_bom_ext_final_matnr p_p_plnt_t p_gs_bom_ext_final_stlan p_gs_bom_ext_final_stlal. DATA: lt_plant TYPE STANDARD TABLE OF plant_api, ls_plant TYPE plant_api, lv_msg TYPE msg, https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
107/124
3/21/2015
Gmail bom extend JCI program kodu
lv_num TYPE i, lv_warning TYPE capiflagflwarning. REFRESH lt_plant[]. CLEAR ls_plant. ls_plantplant = p_p_plnt_t. APPEND ls_plant TO lt_plant. CLEAR: ls_plant,gv_bom_no. CALL FUNCTION 'CSAP_MAT_BOM_ALLOC_CREATE' EXPORTING material = p_gs_bom_ext_final_matnr plant = p_plnt_e bom_usage = p_gs_bom_ext_final_stlan alternative = p_gs_bom_ext_final_stlal * FL_NO_CHANGE_DOC = ' ' fl_commit_and_wait = 'X' IMPORTING fl_warning = lv_warning * bom_no = gv_bom_no TABLES t_plant = lt_plant EXCEPTIONS error = 1 OTHERS = 2 . IF sysubrc <> 0. CALL FUNCTION 'FORMAT_MESSAGE' EXPORTING id = systmsgid no = systmsgno v1 = systmsgv1 v2 = systmsgv2 IMPORTING msg = lv_msg EXCEPTIONS OTHERS = 0. IF systmsgty NE gc_e. CLEAR: lv_msg. ENDIF. IF gt_target_mis[] IS NOT INITIAL. CLEAR: lv_msg,lv_num. DESCRIBE TABLE gt_target_mis LINES lv_num. IF lv_num GT 1. CONCATENATE text128 p_plnt_t INTO lv_msg SEPARATED BY space. ELSE. READ TABLE gt_target_mis INTO gs_target_mis INDEX 1. CONCATENATE gs_target_mismatnr text127 p_plnt_t INTO lv_msg SEPARATED BY space. ENDIF. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmatnr = p_gs_bom_ext_final_matnr. CLEAR gs_legacy_mat. READ TABLE gt_legacy_mat INTO gs_legacy_mat WITH KEY matnr = p_gs_bom_ext_final_matnr. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
108/124
3/21/2015
Gmail bom extend JCI program kodu
IF sysubrc EQ 0. gs_messageszp2f_oldmat = gs_legacy_matzp2f_oldmat. ENDIF. gs_messageswerks = p_p_plnt_t. gs_messagesmessage = lv_msg. APPEND gs_messages TO gt_messages. CLEAR gs_messages. ELSE. CLEAR: gs_messages. gs_messagesicon = '@0A@'. gs_messagesmatnr = p_gs_bom_ext_final_matnr. CLEAR gs_legacy_mat. READ TABLE gt_legacy_mat INTO gs_legacy_mat WITH KEY matnr = p_gs_bom_ext_final_matnr. IF sysubrc EQ 0. gs_messageszp2f_oldmat = gs_legacy_matzp2f_oldmat. ENDIF. gs_messageswerks = p_p_plnt_t. gs_messagesmessage = lv_msg. APPEND gs_messages TO gt_messages. CLEAR gs_messages. ENDIF. ELSE. CLEAR: gs_messages. gs_messagesicon = '@08@'. gs_messagesmatnr = p_gs_bom_ext_final_matnr. CLEAR gs_legacy_mat. READ TABLE gt_legacy_mat INTO gs_legacy_mat WITH KEY matnr = p_gs_bom_ext_final_matnr. IF sysubrc EQ 0. gs_messageszp2f_oldmat = gs_legacy_matzp2f_oldmat. ENDIF. gs_messageswerks = p_p_plnt_t. gs_messagesmessage = text138. APPEND gs_messages TO gt_messages. CLEAR: gv_bom_no,gs_messages. ENDIF. ENDFORM. " ASSIGN_BOM_TO_NEW_PLANT *&* *& Form FETCH_BOM_DETAILS *&* * text ** * >P_GS_BOM_EXT_FINAL_MATNR text * >P_P_PLNT_E text * >P_GS_BOM_EXT_FINAL_STLAN text * >P_GS_BOM_EXT_FINAL_STLAL text ** FORM fetch_bom_details USING p_gs_bom_ext_final_matnr p_p_plnt_e p_gs_bom_ext_final_stlan p_gs_bom_ext_final_stlal. DATA: lt_data TYPE TABLE OF csdep_dat, lt_desc TYPE TABLE OF csdep_desc. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
109/124
3/21/2015
Gmail bom extend JCI program kodu
REFRESH:gt_stpo[],gt_stko[],gt_stpu[]. CALL FUNCTION 'CSAP_MAT_BOM_READ' EXPORTING material = p_gs_bom_ext_final_matnr plant = p_plnt_e bom_usage = p_gs_bom_ext_final_stlan alternative = p_gs_bom_ext_final_stlal TABLES t_stpo = gt_stpo t_stko = gt_stko t_stpu = gt_stpu t_dep_data = lt_data t_dep_descr = lt_desc EXCEPTIONS error = 1 OTHERS = 2. IF gt_stpo[] IS NOT INITIAL. CLEAR gs_stpo. LOOP AT gt_stpo INTO gs_stpo. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = gs_stpocomponent IMPORTING output = gs_stpocomponent. MODIFY gt_stpo FROM gs_stpo. CLEAR gs_stpo. ENDLOOP. REFRESH:gt_target_plant[], gt_target_mis[]. * Also Header Material into STPO for plant validation gs_stpocomponent = p_gs_bom_ext_final_matnr. APPEND gs_stpo TO gt_stpo. CLEAR gs_stpo. SELECT matnr werks FROM marc INTO TABLE gt_target_plant FOR ALL ENTRIES IN gt_stpo WHERE matnr = gt_stpocomponent AND werks = p_plnt_t. CLEAR gs_stpo. LOOP AT gt_stpo INTO gs_stpo. CLEAR gs_target_plant. READ TABLE gt_target_plant INTO gs_target_plant WITH KEY matnr = gs_stpocomponent. IF sysubrc NE 0. gs_target_mismatnr = gs_stpocomponent. APPEND gs_target_mis TO gt_target_mis. CLEAR: gs_target_mis,gs_stpo,gs_target_plant. ENDIF. ENDLOOP. CLEAR gs_stpo. LOOP AT gt_stpo INTO gs_stpo. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_stpocomponent https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
110/124
3/21/2015
Gmail bom extend JCI program kodu
IMPORTING output = gs_stpocomponent. MODIFY gt_stpo FROM gs_stpo. CLEAR gs_stpo. ENDLOOP. ENDIF. ENDFORM. " FETCH_BOM_DETAILS *&* *& Form F_DATA_RETRIEVAL *&* * text ** * > p1 text * < p2 text ** FORM f_data_retrieval . DATA: lv_flg TYPE c. gv_colm = 7. IF p_file IS NOT INITIAL. REFRESH:gt_data_dir[]. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING filename = p_file i_begin_col = 1 i_begin_row = 1 i_end_col = gv_colm i_end_row = 65000 TABLES intern = gt_data_dir EXCEPTIONS inconsistent_parameters = 1 _ole = 2 OTHERS = 3. LOOP AT gt_data_dir INTO gs_data_dir. CASE gs_data_dircol. WHEN '0001'. MOVE gs_data_dirvalue TO gs__dirmatnr. PERFORM conv_matnr CHANGING gs__dirmatnr. WHEN '0002'. MOVE gs_data_dirvalue TO gs__dirdoktl. WHEN '0003'. MOVE gs_data_dirvalue TO gs__dirdokvr. WHEN '0004'. MOVE gs_data_dirvalue TO gs__dirrevlv. WHEN '0005'. MOVE gs_data_dirvalue TO gs__dirdktxt. WHEN '0006'. MOVE gs_data_dirvalue TO gs__dirolddir. WHEN '0007'. MOVE gs_data_dirvalue TO gs__dirlink_n. WHEN OTHERS. ENDCASE. AT END OF row. APPEND gs__dir TO gt__dir. CLEAR: gs__dir. ENDAT. ENDLOOP. ENDIF. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
111/124
3/21/2015
Gmail bom extend JCI program kodu
IF s_ecm_s IS NOT INITIAL. REFRESH: gt_aeoi. SELECT aennr objkt revlv FROM aeoi INTO TABLE gt_aeoi WHERE aetyp = '41' AND aennr IN s_ecm_s. IF gt_aeoi[] IS NOT INITIAL. *To get the latest version SORT gt_aeoi DESCENDING. DELETE ADJACENT DUPLICATES FROM gt_aeoi COMPARING aennr objkt. ENDIF. ENDIF. IF s_dirmat IS NOT INITIAL. REFRESH: gt_mara_dir. SELECT matnr labor FROM mara INTO TABLE gt_mara_dir WHERE matnr IN s_dirmat. ELSEIF gt__dir IS NOT INITIAL. REFRESH: gt_mara_dir. SELECT matnr labor FROM mara INTO TABLE gt_mara_dir FOR ALL ENTRIES IN gt__dir WHERE matnr = gt__dirmatnr. ENDIF. IF gt_aeoi IS NOT INITIAL. SELECT matnr labor FROM mara APPENDING TABLE gt_mara_dir FOR ALL ENTRIES IN gt_aeoi WHERE matnr = gt_aeoiobjkt. ENDIF. REFRESH: gt_doc_type. gs_doc_typesign = 'I'. gs_doc_typeoption = 'EQ'. gs_doc_typelow = p_dokar. APPEND gs_doc_type TO gt_doc_type. REFRESH: gt_revlv. SELECT * FROM tcc09 INTO TABLE gt_revlv WHERE aetyp = '31'. REFRESH: gt_doc_final. LOOP AT gt_mara_dir INTO gs_mara_dir. REFRESH: gt_doc. CALL FUNCTION 'ZP2F_GE_REVISION_LEVELS_DUR' EXPORTING plant = p_werks material = gs_mara_dirmatnr TABLES document_type = gt_doc_type https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
112/124
3/21/2015
Gmail bom extend JCI program kodu
document_details = gt_doc * EXCEPTIONS * PLANT_NOT_FOUND_IN_CUST_TABLE = 1 * OTHERS = 2 . IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. APPEND LINES OF gt_doc TO gt_doc_final. ENDLOOP. LOOP AT gt_mara_dir INTO gs_mara_dir. gt_finalmatnr = gs_mara_dirmatnr. gt_finalwerks = p_werks. gt_finaldokar = p_dokar. gt_finaldokar_n = p_dokar. gt_finalaennr = p_ecm. gt_finallabor = p_labor. CLEAR: gs__dir, lv_flg. READ TABLE gt__dir INTO gs__dir WITH KEY matnr = gs_mara_dirmatnr. IF sysubrc EQ 0. gt_finaldoktl_n = gs__dirdoktl. gt_finaldokvr_n = gs__dirdokvr. gt_finalrevlv_n = gs__dirrevlv. gt_finaldktxt_n = gs__dirdktxt. gt_finalolddir_n = gs__dirolddir. gt_finallink_n = gs__dirlink_n. ELSE. lv_flg = gc_x. ENDIF. CLEAR: gs_doc. READ TABLE gt_doc_final INTO gs_doc WITH KEY matnr = gs_mara_dirmatnr. IF sysubrc EQ 0. gt_finaldoknr = gs_docdoknr. gt_finaldoktl = gs_docdoktl. gt_finaldokvr = gs_docdokvr. gt_finalrevlv = gs_docrevlv. gt_finalolddir = gs_docolddirnum. IF lv_flg = gc_x. gt_finaldoktl_n = p_doktl. gt_finaldokvr_n = '00'. gt_finalolddir_n = gs_docolddirnum. gt_finalrevlv_n = ''. IF gs_docdktxt IS NOT INITIAL. gt_finaldktxt_n = gs_docdktxt. ELSE. gt_finaldktxt_n = 'Document Info Record'. ENDIF. IF gs_docdappl IS NOT INITIAL. gt_finaldappl = gs_docdappl. ELSE. gt_finaldappl = p_dappl. ENDIF. gt_finallink_n = gs_docdocfile1. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
113/124
3/21/2015
Gmail bom extend JCI program kodu
IF gs_docdoktl IS NOT INITIAL AND gt_finaldoktl_n IS INITIAL. gt_finaldoktl_n = gs_docdoktl. ELSEIF gt_finaldoktl_n IS INITIAL. gt_finaldoktl_n = '000'. ENDIF. IF gt_finaldoktl NE gt_finaldoktl_n. gt_finaldokvr_n = '00'. gt_finalrevlv_n = ''. ENDIF. ENDIF. READ TABLE gt_revlv INTO gs_revlv WITH KEY revlv = gs_docrevlv. IF sysubrc EQ 0. gs_revlvccsrf = gs_revlvccsrf + 1. READ TABLE gt_revlv INTO gs_revlv WITH KEY ccsrf = gs_revlvccsrf. IF sysubrc EQ 0. gt_finalrevlv_n = gs_revlvrevlv. ENDIF. ENDIF. ELSE. IF lv_flg EQ gc_x. IF p_doktl IS NOT INITIAL. gt_finaldoktl_n = p_doktl. ELSE. gt_finaldoktl_n = '000'. ENDIF. gt_finaldokvr_n = '00'. gt_finalrevlv_n = ''. gt_finaldktxt_n = 'Document Info Record'. ENDIF. IF gt_finaldappl IS INITIAL. gt_finaldappl = p_dappl. ENDIF. gt_finalsel1 = gc_x. ENDIF. APPEND gt_final. CLEAR: gt_final. ENDLOOP. IF gt_final[] IS NOT INITIAL. PERFORM build_fieldcatalog_dir. PERFORM build_layout_dir. PERFORM display_alv_dir. ELSE. MESSAGE text160 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. ENDFORM. " F_DATA_RETRIEVAL *&* *& Form CONV_MATNR *&* * text ** * >P_gs__dir_MATNR text * <P_gs__dir_MATNR text ** FORM conv_matnr CHANGING p_gs__dir_matnr. CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' EXPORTING https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
114/124
3/21/2015
Gmail bom extend JCI program kodu
input = p_gs__dir_matnr IMPORTING output = p_gs__dir_matnr EXCEPTIONS length_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. ENDFORM. " CONV_MATNR *&* *& Form BUILD_FIELDCATALOG_DIR *&* * text ** * > p1 text * < p2 text ** FORM build_fieldcatalog_dir . DATA: lv_repid TYPE syrepid. REFRESH: gt_fieldcat_dir. lv_repid = syrepid. *FM to create field catalog for final internal table CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = lv_repid i_internal_tabname = 'GT_FINAL' i_inclname = lv_repid i_bying_buffer = gc_x CHANGING ct_fieldcat = gt_fieldcat_dir EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. *To modify the fieldcatalog according to the s LOOP AT gt_fieldcat_dir INTO gs_fieldcat_dir. CLEAR: gs_fieldcat_dirseltext_s. IF gs_fieldcat_dirfieldname = 'SEL'. gs_fieldcat_dirseltext_m = text151. gs_fieldcat_dircheckbox = gc_x. gs_fieldcat_diredit = gc_x. gs_fieldcat_diroutputlen = 5. ELSEIF gs_fieldcat_dirfieldname = 'DOKTL_N'. CONCATENATE 'New' gs_fieldcat_dirseltext_m INTO gs_fieldcat_dirseltext_m SEPARATED BY space. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'DOKVR_N'. CONCATENATE 'New' gs_fieldcat_dirseltext_m INTO gs_fieldcat_dirseltext_m SEPARATED BY space. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'OLDDIR_N'. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
115/124
3/21/2015
Gmail bom extend JCI program kodu
gs_fieldcat_dirseltext_m = 'Old DIR Number'. CONCATENATE 'New' gs_fieldcat_dirseltext_m INTO gs_fieldcat_dirseltext_m SEPARATED BY space. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'REVLV_N'. CONCATENATE 'New' gs_fieldcat_dirseltext_m INTO gs_fieldcat_dirseltext_m SEPARATED BY space. gs_fieldcat_diredit = gc_x. gs_fieldcat_dirinput = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'OLDDIR'. gs_fieldcat_dirseltext_m = 'Old DIR Number'. gs_fieldcat_dirinput = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'DKTXT_N'. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'DOKAR_N'. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'LABOR'. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'DAPPL'. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'LINK_N'. gs_fieldcat_diredit = gc_x. ELSEIF gs_fieldcat_dirfieldname = 'SEL1'. gs_fieldcat_dirseltext_m = text152. gs_fieldcat_dircheckbox = gc_x. gs_fieldcat_diredit = gc_x. gs_fieldcat_diroutputlen = 5. ENDIF. gs_fieldcat_dirddictxt = 'M'. MODIFY gt_fieldcat_dir FROM gs_fieldcat_dir. ENDLOOP. ENDFORM. " BUILD_FIELDCATALOG_DIR *&* *& Form BUILD_LAYOUT_DIR *&* * text ** * > p1 text * < p2 text ** FORM build_layout_dir . *To build the layout design CLEAR: gs_layout_dir. gs_layout_dirzebra = gc_x. ENDFORM. " BUILD_LAYOUT_DIR *&* *& Form DISPLAY_ALV_DIR *&* * text ** * > p1 text * < p2 text ** FORM display_alv_dir . DATA: lv_repid TYPE syrepid. lv_repid = syrepid. gs_layout_dirinfo_fieldname = 'ROW'. *FM to display ALV https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
116/124
3/21/2015
Gmail bom extend JCI program kodu
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = lv_repid i_callback_pf_status_set = 'PF_STATUS_DIR' i_callback__command = '_COMMAND_DIR' i_grid_title = text153 is_layout = gs_layout_dir it_fieldcat = gt_fieldcat_dir i_default = 'X' i_save = ' ' TABLES t_outtab = gt_final EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. ENDFORM. " DISPLAY_ALV_DIR *&* *& Form _command *&* * text ** * actions on ALV FORM _command_dir USING r_ucomm TYPE syucomm selfield TYPE slis_selfield. CASE r_ucomm. WHEN 'EASY'. PERFORM _document. WHEN 'SEL'. gv_select = gc_x. PERFORM select_all_entries_dir CHANGING gt_final[]. WHEN 'DESEL'. CLEAR: gv_select. PERFORM select_all_entries_dir CHANGING gt_final[]. WHEN 'NSEL'. gv_newsel = gc_x. PERFORM select_all_entries_dir_new CHANGING gt_final[]. WHEN 'NDSEL'. CLEAR: gv_newsel. PERFORM select_all_entries_dir_new CHANGING gt_final[]. WHEN OTHERS. ENDCASE. ENDFORM. "_command * * FORM PFSTATUS * ** *Form for settings the pf status to the alv FORM pf_status_dir USING rt_extab TYPE slis_t_extab. SET PFSTATUS 'STANDARD_DIR'. ENDFORM. "pf_status *&* *& Form SELECT_ALL_ENTRIES_DIR *&* * text ** * <P_GT_OUTPUT[] text ** FORM select_all_entries_dir CHANGING p_gt_final TYPE STANDARD TABLE. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
117/124
3/21/2015
Gmail bom extend JCI program kodu
DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_final. DATA: lv_valid TYPE c. *For capturing the selected data CLEAR: lv_valid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = lv_valid. IF lv_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_final INTO ls_outtab. IF gv_select EQ gc_x. ls_outtabsel = 'X'. ELSE. ls_outtabsel = ' '. ENDIF. MODIFY p_gt_final FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " SELECT_ALL_ENTRIES_DIR *&* *& Form SELECT_ALL_ENTRIES_DIR *&* * text ** * <P_GT_OUTPUT[] text ** FORM select_all_entries_dir_new CHANGING p_gt_final TYPE STANDARD TABLE. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_final. DATA: lv_valid TYPE c. *For capturing the selected data CLEAR: lv_valid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = lv_valid. IF lv_valid EQ 'X'. CLEAR ls_outtab. LOOP AT p_gt_final INTO ls_outtab. IF gv_newsel EQ gc_x. ls_outtabsel1 = 'X'. ELSE. ls_outtabsel1 = ' '. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
118/124
3/21/2015
Gmail bom extend JCI program kodu
ENDIF. MODIFY p_gt_final FROM ls_outtab. CLEAR ls_outtab. ENDLOOP. CALL METHOD lv_grid>refresh_table_display. ENDIF. ENDFORM. " SELECT_ALL_ENTRIES_DIR *&* *& Form _DOCUMENT *&* * text ** * > p1 text * < p2 text ** FORM _document . DATA: ls_documentdata TYPE bapi_doc_draw2, ls_documentdatax TYPE bapi_doc_drawx2, lv_hostname TYPE bapi_doc_auxhostname, lv_force_update TYPE bapi_doc_auxflag, lt_documentdescriptions TYPE TABLE OF bapi_doc_drat, ls_documentdescriptions LIKE LINE OF lt_documentdescriptions, lt_characteristicvalues TYPE TABLE OF bapi_characteristic_values , ls_characteristicvalues LIKE LINE OF lt_characteristicvalues, lt_classallocations TYPE TABLE OF bapi_class_allocation, ls_classallocations LIKE LINE OF lt_classallocations, lt_origional TYPE TABLE OF bapi_doc_files2, ls_origional LIKE LINE OF lt_origional, lt_objectlinks TYPE TABLE OF bapi_doc_drad, ls_objectlinks LIKE LINE OF lt_objectlinks, ls_bapi_msg LIKE bapiret2, lv_flag TYPE c. DATA: lv_grid TYPE REF TO cl_gui_alv_grid. DATA: ls_outtab LIKE LINE OF gt_final. DATA: lv_valid TYPE c. *For capturing the selected data CLEAR: lv_valid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lv_grid. CALL METHOD lv_grid>check_changed_data IMPORTING e_valid = lv_valid. IF lv_valid EQ 'X'. CLEAR: lv_flag. REFRESH: gt_final_output. LOOP AT gt_final WHERE sel = gc_x. lv_flag = gc_x. IF gt_finallabor IS NOT INITIAL. ls_documentdatalaboratory = gt_finallabor. ELSE. READ TABLE gt_mara_dir INTO gs_mara_dir WITH KEY matnr = gt_finalmatnr. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
119/124
3/21/2015
Gmail bom extend JCI program kodu
IF sysubrc EQ 0. ls_documentdatalaboratory = gs_mara_dirlabor. ENDIF. ENDIF. IF gt_finalsel EQ gc_x AND gt_finalsel1 NE gc_x. ls_documentdatadocumenttype = gt_finaldokar. ls_documentdatadocumentnumber = gt_finaldoknr. ls_documentdatadocumentversion = gt_finaldokvr + '01'. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = ls_documentdatadocumentversion IMPORTING output = ls_documentdatadocumentversion. ls_documentdatadocumentpart = gt_finaldoktl. ls_documentdatarevlevel = gt_finalrevlv_n. ls_documentdataname = syuname. lv_hostname = 'SAP'. ls_documentdataecnumber = p_ecm. ls_documentdatadescription = gt_finaldktxt_n. ls_documentdatarefdocumentnumber = gt_finaldoknr. ls_documentdatarefdocumentpart = gt_finaldoktl. ls_documentdatarefdocumentversion = gt_finaldokvr. ls_documentdataxrefdocumentnumber = gc_x. ls_documentdataxrefdocumentpart = gc_x. ls_documentdataxrefdocumentversion = gc_x. ENDIF. ls_documentdatadocfile1 = gt_finallink_n. IF gt_finaldappl IS NOT INITIAL. ls_documentdatawsapplication1 = gt_finaldappl. ELSE. ls_documentdatawsapplication1 = 'URL'. ENDIF. ls_documentdatasavedocfile1 = gt_finallink_n. IF gt_finalsel1 EQ gc_x. ls_documentdatadocumenttype = gt_finaldokar_n. ls_documentdatadocumentversion = gt_finaldokvr_n. ls_documentdatadocumentpart = gt_finaldoktl_n. ls_documentdataname = syuname. lv_hostname = 'SAP'. ls_documentdataecnumber = p_ecm. ls_documentdatarevlevel = gt_finalrevlv_n. ls_documentdatadescription = gt_finaldktxt_n. ENDIF. ls_documentdataxdocumenttype = gc_x. ls_documentdataxdocumentnumber = gc_x. ls_documentdataxdocumentpart = gc_x. ls_documentdataxdocumentversion = gc_x. ls_documentdataxdescription = gc_x. ls_documentdataxecnumber = gc_x. ls_documentdataxrevlevel = gc_x. ls_documentdataxlaboratory = gc_x. ls_documentdataxdocfile1 = gc_x. ls_documentdataxwsapplication1 = gc_x. ls_documentdataxsavedocfile1 = gc_x. ls_documentdataxdatacarrier1 = gc_x. ls_documentdataxsavedatacarrier1 = gc_x. https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
120/124
3/21/2015
Gmail bom extend JCI program kodu
CLEAR: ls_documentdescriptions, ls_objectlinks, ls_origional. REFRESH: lt_documentdescriptions, lt_objectlinks, lt_origional. ls_documentdescriptionslanguage = 'E'. ls_documentdescriptionslanguage_iso = 'EN'. ls_documentdescriptionsdescription = gt_finaldktxt_n. APPEND ls_documentdescriptions TO lt_documentdescriptions. ls_objectlinksobjecttype = 'MARA'. ls_objectlinksobjectkey = gt_finalmatnr. ls_objectlinksdocumentdirection = gc_x. APPEND ls_objectlinks TO lt_objectlinks. REFRESH: lt_classallocations, lt_characteristicvalues. IF gt_finalolddir_n IS NOT INITIAL. ls_characteristicvaluesclasstype = '017'. ls_characteristicvaluesclassname = 'DIR_NUMBER_OLD'. ls_characteristicvaluescharname = 'OLDDIRNUMBER'. ls_characteristicvaluescharvalue = gt_finalolddir_n. APPEND ls_characteristicvalues TO lt_characteristicvalues. ls_classallocationsclasstype = '017'. ls_classallocationsclassname = 'DIR_NUMBER_OLD'. ls_classallocationsstandardclass = gc_x. ls_classallocationsecnumber = p_ecm. APPEND ls_classallocations TO lt_classallocations. ENDIF. IF gt_finallink_n IS NOT INITIAL. ls_origionaldocumenttype = ls_documentdatadocumenttype. ls_origionaldocumentnumber = ls_documentdatadocumentnumber. ls_origionaldocumentpart = ls_documentdatadocumentpart. ls_origionaldocumentversion = ls_documentdatadocumentversion. ls_origionaloriginaltype = '1'. ls_origionalapplication_id = 'DIR'. IF gt_finaldappl IS NOT INITIAL. ls_origionalwsapplication = gt_finaldappl. ELSE. ls_origionalwsapplication = 'URL'. ENDIF. ls_origionallanguage = 'E'. ls_origionalcheckedin = gc_x. ls_origionalactive_version = gc_x. ls_origionaldocfile = gt_finallink_n. ls_origionaldoath = gt_finallink_n. APPEND ls_origional TO lt_origional. ENDIF. CLEAR: gt_final_output. CALL FUNCTION 'BAPI_DOCUMENT_LOAD' EXPORTING documentdata = ls_documentdata documentdatax = ls_documentdatax hostname = lv_hostname force_update = lv_force_update * CAD_MODE = ' ' IMPORTING documenttype = gt_final_outputdokar documentnumber = gt_final_outputdoknr documentpart = gt_final_outputdoktl https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
121/124
3/21/2015
Gmail bom extend JCI program kodu
documentversion = gt_final_outputdokvr return = ls_bapi_msg TABLES characteristicvalues = lt_characteristicvalues classallocations = lt_classallocations * documentdescriptions = objectlinks = lt_objectlinks documentfiles = lt_origional * LONGTEXTS = * COMPONENTS = * STATUSLOG = . IF sysubrc EQ 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' * EXPORTING * WAIT = * IMPORTING * RETURN = . ENDIF. gt_final_outputmsg = ls_bapi_msgmessage. IF gt_final_outputdoknr IS NOT INITIAL AND gt_finalsel1 IS NOT INITIAL. gt_final_outputmsg = text155. ELSEIF gt_final_outputdoknr IS NOT INITIAL . gt_final_outputmsg = text156. ENDIF. gt_final_outputmatnr = gt_finalmatnr. gt_final_outputaennr = p_ecm. APPEND gt_final_output. ENDLOOP. ENDIF. IF lv_flag IS INITIAL. MESSAGE text154 TYPE gc_s DISPLAY LIKE gc_e. EXIT. ENDIF. IF gt_final_output IS NOT INITIAL. PERFORM build_fieldcatalog_dir1. PERFORM display_alv_dir1. ENDIF. ENDFORM. " _DOCUMENT *&* *& Form BUILD_FIELDCATALOG_DIR1 *&* * text ** * > p1 text * < p2 text ** FORM build_fieldcatalog_dir1 . DATA: lv_repid TYPE syrepid. REFRESH: gt_fieldcat_dir1. lv_repid = syrepid. *FM to create field catalog for final internal table CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = lv_repid https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
122/124
3/21/2015
Gmail bom extend JCI program kodu
i_internal_tabname = 'GT_FINAL_OUTPUT' i_inclname = lv_repid i_bying_buffer = gc_x CHANGING ct_fieldcat = gt_fieldcat_dir1 EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sysubrc <> 0. * MESSAGE ID SYMSGID TYPE SYMSGTY NUMBER SYMSGNO * WITH SYMSGV1 SYMSGV2 SYMSGV3 SYMSGV4. ENDIF. ENDFORM. " BUILD_FIELDCATALOG_DIR1 *&* *& Form DISPLAY_ALV_DIR1 *&* * text ** * > p1 text * < p2 text ** FORM display_alv_dir1 . DATA: lv_repid TYPE syrepid. lv_repid = syrepid. gs_layout_dirinfo_fieldname = 'ROW'. *FM to display ALV CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = lv_repid * i_callback_pf_status_set = 'PF_STATUS_DIR' * i_callback__command = '_COMMAND_DIR' i_grid_title = text153 is_layout = gs_layout_dir it_fieldcat = gt_fieldcat_dir1 i_default = 'X' i_save = ' ' TABLES t_outtab = gt_final_output EXCEPTIONS program_error = 1 OTHERS = 2. IF sysubrc <> 0. * MESSAGE ID symsgid TYPE symsgty NUMBER symsgno * WITH symsgv1 symsgv2 symsgv3 symsgv4. ENDIF. ENDFORM. " DISPLAY_ALV_DIR1
https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
123/124
3/21/2015
Gmail bom extend JCI program kodu
Meltem ALTIN Test Engineer Manisa Plant / Turkey Building Efficiency
Johnson Controls Klima ve Sogutma, Servis San. ve Tic. A.S. Muradiye Organize Sanayi Bölgesi Dr. Orhan Aksoy Cd. No:14 PK:45140 Manisa / Turkey Tel : +90 236 226 88 31 Fax : +90 236 214 06 80 Email :
[email protected]
URL : http://www.johnsoncontrols.com
image001.png 9K View
https://mail.google.com/mail/u/0/?ui=2&ik=edd51d0144&view=lg&msg=14c3176a89fcfd04
124/124