nace
-
Upload
pandu-munagala -
Category
Documents
-
view
33 -
download
1
description
Transcript of nace
**&---------------------------------------------------------------------***& Include Z_MMP_RFQ_NACE_DATA**&---------------------------------------------------------------------*DATA : lv_doc type meein_purchase_doc_print. data: lv_druvo like t166k-druvo, lv_nast like nast, lv_from_memory, lv_toa_dara type toa_dara.form entry_neu using ent_retco ent_screen.
clear ent_retco. if nast-aende eq space. lv_druvo = '1'. else. lv_druvo = '2'. endif.
call function 'ME_READ_PO_FOR_PRINTING' exporting ix_nast = nast ix_screen = ent_screen importing ex_retco = ent_retco ex_nast = lv_nast doc = lv_doc changing cx_druvo = lv_druvo cx_from_memory = lv_from_memory. check ent_retco eq 0.
call function 'ME_PRINT_PO' exporting ix_nast = lv_nast ix_druvo = lv_druvo doc = lv_doc ix_screen = ent_screen ix_from_memory = lv_from_memory ix_toa_dara = lv_toa_dara ix_arc_params = arc_params ix_fonam = tnapr-fonam "HW 214570 importing ex_retco = ent_retco.endform.
START-OF-SELECTION.
perform f_get_plantdata. "/ FOR PLANT DATA SELECTION.
perform f_get_contact_data. "/ FOR CONTACT DETAILS DATA SELECTION.perform f_get_enqiry_data. "/FOR ENQUIRY DETAILS DATA SELECTION.PERFORM F_GET_VENDORDATA.
*tables eket.*parameter p_ebeln type eket-ebeln.
TYPES : BEGIN OF GTY_EKET, EBELN TYPE EKET-EBELN, ebelp type eket-ebelp, ETENR TYPE EKET-ETENR, EINDT TYPE EKET-EINDT, MENGE TYPE EKET-MENGE, BANFN TYPE EKET-BANFN, END OF GTY_EKET.DATA : GT_EKET TYPE STANDARD TABLE OF GTY_EKET.DATA : GS_EKET TYPE GTY_EKET.
TYPES : BEGIN OF GTY_EKPO, EBELN TYPE EKPO-EBELN, EBELP TYPE EKPO-EBELP, MATNR TYPE EKPO-MATNR, MEINS TYPE EKPO-MEINS, END OF GTY_EKPO.DATA : GT_EKPO TYPE STANDARD TABLE OF GTY_EKPO, GS_EKPO TYPE GTY_EKPO.
TYPES : BEGIN OF GTY_FINAL, EBELN TYPE EKPO-EBELN, EBELP TYPE EKPO-EBELP, MATNR TYPE EKPO-MATNR, MEINS TYPE EKPO-MEINS, ETENR TYPE EKET-ETENR, EINDT TYPE EKET-EINDT, MENGE TYPE EKET-MENGE, banfn type eket-banfn, END OF GTY_FINAL.
DATA : GT_FINAL TYPE STANDARD TABLE OF GTY_FINAL, GS_FINAL TYPE GTY_FINAL.
select EBELN ebelp matnr meins from ekpo into table gt_ekpo where EBELN eq P_EBELN. "and bstyp eq 'A'.
IF GT_EKPO IS NOT INITIAL.
SORT GT_EKPO BY EBELP. DELETE ADJACENT DUPLICATES FROM GT_EKET.
select EBELN ebelp etenr eindt menge BANFN from eket into table gt_eket FOR ALL ENTRIES IN GT_EKPO WHERE EBELN EQ P_EBELN AND EBELP = GT_EKPO-EBELP.
SORT GT_EKET BY EBELN EBELP ETENR EINDT . DELETE ADJACENT DUPLICATES FROM GT_EKET.
ENDIF.
LOOP AT GT_EKPO INTO GS_EKPO.
READ TABLE GT_EKET INTO GS_EKET WITH KEY EBELP = GS_EKPO-EBELP. IF SY-SUBRC = 0. GS_FINAL-EBELN = GS_EKPO-EBELN. GS_FINAL-EBELP = GS_EKPO-EBELP. GS_FINAL-ETENR = GS_EKET-ETENR. GS_FINAL-EINDT = GS_EKET-EINDT. GS_FINAL-MENGE = GS_EKET-MENGE. GS_FINAL-BANFN = GS_EKET-BANFN. GS_FINAL-MATNR = GS_EKPO-MATNR. GS_FINAL-MEINS = GS_EKPO-MEINS. APPEND GS_FINAL TO GT_FINAL. CLEAR GS_FINAL.
ENDIF. ENDLOOP.*** LOOP AT GT_FINAL INTO GS_FINAL.** AT FIRST.* WRITE:/ 'PO Details'.* WRITE:/ 'PO NUMBER' COLOR 5, 20 'ITEM NO' COLOR 5,* 30 'Material' COLOR 5, 50 'UOM' COLOR 5,* 60 'NO OF DEL' COLOR 5, 75 'Del Date' color 5,* 87 'QTY', 100 'Shduled Qty'.
* endat.* WRITE : / GS_FINAL-EBELN,* 20 GS_FINAL-EBELP,* 30 GS_FINAL-MATNR,* 50 GS_FINAL-MEINS,* 60 GS_FINAL-ETENR,* 75 GS_FINAL-EINDT,* 87 GS_FINAL-MENGE,* 100 GS_FINAL-BANFN.** ENDLOOP.*****REPORT z_mmp_po_print.**
*****&---------------------------------------------------------------------***& Report ZMULTI_FORMS**&**&---------------------------------------------------------------------***&**&**&---------------------------------------------------------------------***REPORT ZMULTI_FORMS.**Tables : vbrk , vbrp.**data:*control_parameters type ssfctrlop,*w_cnt type I,*w_cnt2 type I,*fname type rs38l_fnam.***selection-screen begin of block b1 with FRAME.**select-options so_vbeln for vbrk-vbeln.*select-options so_fkdat for vbrk-fkdat.*select-options so_kunag for vbrk-kunag.
*select-options so_werks for vbrp-werks OBLIGATORY.**selection-screen end of block b1.***data : gv_kunnr type kna1-kunnr.*TYPES : BEGIN OF GTY_cus_ADS,* kunnr type kna1-kunnr,* NAME1 TYPE ADRC-NAME1,* CITY1 TYPE ADRC-CITY1,* CITY_CODE TYPE ADRC-CITY_CODE,* END OF GTY_CUS_ADS.** DATA : GS_CUS_ADS TYPE ZSTADD.** TYPES : BEGIN OF GTY_PLANT_ADS,* NAME1 TYPE ADRC-NAME1,* CITY1 TYPE ADRC-CITY1,* CITY_CODE TYPE ADRC-CITY_CODE,* END OF GTY_PLANT_ADS.** DATA : GS_PLANT_ADS TYPE ZSTADD.**types : begin of gty_vbrp,* vbeln type vbeln_vf,* werks type werks_d,* end of gty_vbrp.**types:begin of gty_vbrk,* vbeln type VBRK-vbelN,* fkdat type fkdat,* kunag type kunag,** werks type werks_d,* end of gty_vbrk.* types : begin of gty_final,* check(1) type c,* vbeln type vbeln_vf,* werks type werks_d,* fkdat type fkdat,* kunag type kunag,* end of gty_final.***data : gt_vbrp type STANDARD TABLE OF gty_vbrp,* gs_vbrp type gty_vbrp.*data : gt_vbrk type TABLE OF gty_vbrk,* gs_vbrk type gty_vbrk.*data : gt_final type STANDARD TABLE OF ZINV_DET,* gs_final type ZINV_DET.
*data : gt_sel type STANDARD TABLE OF gty_final,* gs_sel type gty_final.***DATA : GV_ADRNR TYPE ADRC-ADDRNUMBER.*AT SELECTION-SCREEN.*****TOP-OF-PAGE.****WRITE 'INVOICE LIST'.**START-OF-SELECTION.***select vbeln fkdat kunag from* vbrk into table gt_vbrk* where vbeln in so_vbeln* and fkdat in so_fkdat* and kunag in so_kunag.**IF GT_VBRK IS NOT INITIAL.**select vbeln werks from vbrp* into table gt_vbrp* for ALL ENTRIES IN GT_VBRK* where VBELN EQ GT_VBRK-VBELN* AND WERKS IN SO_WERKS.****loop at gT_vbrK into gs_vbrK.**Read table gt_vbRP into gs_vbrP with KEY vbeln = gs_vbrK-vbeln .* IF SY-SUBRC = 0.**gs_final-vbeln = gs_vbrK-vbeln.* gs_final-WERKS = gs_vbrP-WERKS.* gs_final-FKDAT = gs_vbrK-FKDAT.* GS_FINAL-KUNAG = GS_VBRK-KUNAG.* append gs_final to gt_final.* ENDIF.*** clear gs_final.** endloop.** ENDIF.
** delete ADJACENT DUPLICATES FROM gt_final.*sort gt_final by vbeln FKDAT.*describe table GT_FINAL lines w_cnt.*****"PERFORM DISPLAY.**PERFORM SM_FUN_NAME.*** LOOP AT GT_FINAL INTO GS_FINAL.* PERFORM PLANT_ADD.* PERFORM CUST_DATA.* "PERFORM ITEM_DATA.*PERFORM CALL_SMARTFORM.**** ENDLOOP.*****&---------------------------------------------------------------------***& Form PLANT_ADD**&---------------------------------------------------------------------*** text**----------------------------------------------------------------------*** --> p1 text** <-- p2 text**----------------------------------------------------------------------**FORM PLANT_ADD .*****SELECT SINGLE ADRNR FROM T001W INTO GV_ADRNR* WHERE WERKS EQ GS_FINAL-WERKS.* IF SY-SUBRC = 0.** SELECT SINGLE NAME1 CITY1 CITY_CODE* FROM ADRC INTO GS_PLANT_ADS* WHERE ADDRNUMBER EQ GV_ADRNR.
** ENDIF.**clear gv_adrnr.***ENDFORM. " PLANT_ADD**&---------------------------------------------------------------------***& Form CUST_DATA**&---------------------------------------------------------------------*** text**----------------------------------------------------------------------*** --> p1 text** <-- p2 text**----------------------------------------------------------------------**FORM CUST_DATA .***select SINGLE kunnr from vbpa into gv_kunnr where* vbeln eq gs_final-vbeln and parvw = 'AG'.*if sy-subrc = 0.*select single adrnr from kna1* into gv_adrnr where kunnr eq gv_kunnr.* IF SY-SUBRC = 0.** SELECT SINGLE NAME1 CITY1 CITY_CODE* FROM ADRC INTO GS_CUS_ADS* WHERE ADDRNUMBER EQ GV_ADRNR.** ENDIF.**endif.*ENDFORM. " CUST_DATA**&---------------------------------------------------------------------***& Form DISPLAY**&---------------------------------------------------------------------*** text**----------------------------------------------------------------------*** --> p1 text** <-- p2 text**----------------------------------------------------------------------*
*FORM DISPLAY .** loop at gt_final into gs_final.*** write :/ "gs_final-check as checkbox,* gs_final-vbeln ,* gs_final-werks,* gs_final-fkdat,* gs_final-kunag.** endloop.***ENDFORM. " DISPLAY**&---------------------------------------------------------------------***& Form SM_FUN_NAME**&---------------------------------------------------------------------*** text**----------------------------------------------------------------------*** --> p1 text** <-- p2 text**----------------------------------------------------------------------**FORM SM_FUN_NAME .*CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'* EXPORTING* FORMNAME = 'ZSD_TEST'** VARIANT = ' '** DIRECT_CALL = ' '* IMPORTING* FM_NAME = FNAME** EXCEPTIONS** NO_FORM = 1** NO_FUNCTION_MODULE = 2** OTHERS = 3* .*IF SY-SUBRC <> 0.*MESSAGE 'Your Form Name is not existing' type 'E'.*ENDIF.****ENDFORM. " SM_FUN_NAME**&---------------------------------------------------------------------*
**& Form CALL_SMARTFORM**&---------------------------------------------------------------------*** text**----------------------------------------------------------------------*** --> p1 text** <-- p2 text**----------------------------------------------------------------------**FORM CALL_SMARTFORM .**w_cnt2 = sy-tabix .*case w_cnt2.*when 1.*control_parameters-no_open = space .*control_parameters-no_close = 'X' .*when w_cnt .*control_parameters-no_open = 'X' .*control_parameters-no_close = space .*when others.*control_parameters-no_open = 'X' .*control_parameters-no_close = 'X' .*endcase.***call function fname**exporting* control_parameters = control_parameters*GS_PLANTADS = GS_PLANT_ADS*GS_CUS_ADS = GS_CUS_ADS*GS_INV_DATA = GS_FINAL*exceptions*formatting_error = 1*internal_error = 2*send_error = 3*user_canceled = 4*others = 5*.*if sy-subrc <> 0.*message 'ERROR RELATED TO SMARTFORM OR PAGE FORMAT OR PRINTER' type*'E'.*endif.*****
***ENDFORM. " CALL_SMARTFORM
PERFORM set_print_param USING ls_addr_key CHANGING ls_control_param ls_composer_param ls_recipient ls_sender ent_retco.*Get the Smart Form name. IF NOT tnapr-sform IS INITIAL. lf_formname = tnapr-sform. ELSE. MESSAGE e001(/smb40/ssfcomposer). ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lf_formname IMPORTING fm_name = lf_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0.* error handling ent_retco = sy-subrc. IF sy-subrc = 1. MESSAGE e001(/smb40/ssfcomposer). ENDIF. IF sy-subrc = 2. MESSAGE e002(/smb40/ssfcomposer). ENDIF. PERFORM protocol_update_i. ENDIF.
IF ( nast-kappl EQ 'EF' AND nast-kschl EQ 'ZNEU' AND nast-spras EQ 'E') OR ( nast-kappl EQ 'EF' AND nast-kschl EQ 'ZSEZ' AND nast-spras EQ 'E') OR ( nast-kappl EQ 'EF' AND nast-kschl EQ 'ZSUB' AND nast-spras EQ 'E').* Determine smartform function module for PO* CALL FUNCTION lf_fm_name* EXPORTING* archive_index = toa_dara* archive_parameters = arc_params* control_parameters = ls_control_param** mail_recipient = ls_recipient** mail_sender = ls_sender* output_options = ls_composer_param* l_xekko = lv_doc-xekko* l_xpekko = lv_doc-xpekko* j_1imovend = GS_j_1imovend
* TABLES* l_xekpo = lv_doc-xekpo[]* l_xekpa = lv_doc-xekpa[]* l_xpekpo = lv_doc-xpekpo[]* l_xeket = lv_doc-xeket[]* l_xtkomv = lv_doc-xtkomv[]* l_xekkn = lv_doc-xekkn[]* l_xekek = lv_doc-xekek[]* l_xkomk = l_xkomk* l_j_1imovend = GT_j_1imovend* L_ADR6 = GT_ADR6* L_EKKO = GT_EKKO* L_ADRC = GT_ADRC** EXCEPTIONS* formatting_error = 1* internal_error = 2* send_error = 3* user_canceled = 4* OTHERS = 5.* IF sy-subrc <> 0.* ent_retco = sy-subrc.* PERFORM protocol_update_i.*** get SmartForm protocoll and store it in the NAST protocoll* PERFORM add_smfrm_prot.* ENDIF.
**************DATA: L_XEKPO LIKE EKPO OCCURS 0 WITH HEADER LINE,L_XEKPA LIKE MSGPA OCCURS 0 WITH HEADER LINE,L_XPEKPO LIKE PEKPO OCCURS 0 WITH HEADER LINE ,L_XEKET LIKE EKET OCCURS 0 WITH HEADER LINE,L_XTKOMV LIKE KOMV OCCURS 0 WITH HEADER LINE,L_XEKKN LIKE EKKN OCCURS 0 WITH HEADER LINE,L_XEKEK LIKE EKEK OCCURS 0 WITH HEADER LINE ,LV_LFA1 LIKE LFA1 OCCURS 0 WITH HEADER LINE,GT_ADR6 LIKE ADR6 OCCURS 0 WITH HEADER LINE,GT_KNA1 LIKE KNA1 OCCURS 0 WITH HEADER LINE,GT_ADRC LIKE ADRC OCCURS 0 WITH HEADER LINE,GT_EKKO LIKE EKKO OCCURS 0 WITH HEADER LINE,GT_L_J_1IMOVEND LIKE J_1IMOVEND OCCURS 0 WITH HEADER LINE.
SELECT SINGLE * FROM lfa1 INTO lv_lfa1 WHERE lifnr = nast-parnr.
CALL FUNCTION lf_fm_name* EXPORTING* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =* ARCHIVE_PARAMETERS =* CONTROL_PARAMETERS =* MAIL_APPL_OBJ =* MAIL_RECIPIENT =* MAIL_SENDER =* OUTPUT_OPTIONS =* USER_SETTINGS = 'X'* IMPORTING* DOCUMENT_OUTPUT_INFO =* JOB_OUTPUT_INFO =* JOB_OUTPUT_OPTIONS = TABLES L_XEKPO = L_XEKPO L_XEKPA = L_XEKPA L_XPEKPO = L_XPEKPO L_XEKET = L_XEKET L_XTKOMV = L_XTKOMV L_XEKKN = L_XEKKN L_XEKEK = L_XEKEK LV_LFA1 = LV_LFA1 GT_ADR6 = GT_ADR6 GT_KNA1 = GT_KNA1 GT_ADRC = GT_ADRC GT_EKKO = GT_EKKO GT_L_J_1IMOVEND = GT_L_J_1IMOVEND* EXCEPTIONS* FORMATTING_ERROR = 1* INTERNAL_ERROR = 2* SEND_ERROR = 3* USER_CANCELED = 4* OTHERS = 5 .IF SY-SUBRC <> 0.* Implement suitable error handling hereENDIF.*ENDIF.
**************** ENDIF.ENDFORM. "entry_neu
*&---------------------------------------------------------------------**& Form protocol_update_I*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text
*----------------------------------------------------------------------*FORM protocol_update_i. CHECK gv_xscreen = space. CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = syst-msgid msg_nr = syst-msgno msg_ty = syst-msgty msg_v1 = syst-msgv1 msg_v2 = syst-msgv2 msg_v3 = syst-msgv3 msg_v4 = syst-msgv4 EXCEPTIONS OTHERS = 1.ENDFORM. " protocol_update_I*&---------------------------------------------------------------------**& Form add_smfrm_prot*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM add_smfrm_prot. DATA: lt_errortab TYPE tsferror. DATA: lf_msgnr TYPE sy-msgno. DATA: ls_s_log TYPE bal_s_log, p_loghandle TYPE balloghndl, ls_s_msg TYPE bal_s_msg. FIELD-SYMBOLS: <fs_errortab> TYPE LINE OF tsferror.* get smart form protocoll CALL FUNCTION 'SSF_READ_ERRORS' IMPORTING errortab = lt_errortab. SORT lt_errortab.* delete adjacent duplicates from lt_errortab comparing errnumber.* add smartform protocoll to nast protocoll LOOP AT lt_errortab ASSIGNING <fs_errortab>. CLEAR lf_msgnr. lf_msgnr = <fs_errortab>-errnumber. CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = <fs_errortab>-msgid msg_nr = lf_msgnr msg_ty = <fs_errortab>-msgty msg_v1 = <fs_errortab>-msgv1 msg_v2 = <fs_errortab>-msgv2 msg_v3 = <fs_errortab>-msgv3 msg_v4 = <fs_errortab>-msgv4
EXCEPTIONS OTHERS = 1. ENDLOOP.
* open the application log ls_s_log-extnumber = sy-uname.
CALL FUNCTION 'BAL_LOG_CREATE' EXPORTING i_s_log = ls_s_log IMPORTING e_log_handle = p_loghandle EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. ENDIF.
LOOP AT lt_errortab ASSIGNING <fs_errortab>. MOVE-CORRESPONDING <fs_errortab> TO ls_s_msg. CALL FUNCTION 'BAL_LOG_MSG_ADD' EXPORTING i_log_handle = p_loghandle i_s_msg = ls_s_msg EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. ENDIF. ENDLOOP.* call function 'BAL_DSP_LOG_DISPLAY'.
ENDFORM. " add_smfrm_prot*&---------------------------------------------------------------------**& Form set_print_param*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_LS_ADDR_KEY text* <--P_LS_CONTROL_PARAM text* <--P_LS_COMPOSER_PARAM text* <--P_LS_RECIPIENT text* <--P_LS_SENDER text* <--P_CF_RETCODE text*----------------------------------------------------------------------*FORM set_print_param USING p_addr_key LIKE addr_key CHANGING p_control_param TYPE ssfctrlop p_composer_param TYPE ssfcompop p_recipient TYPE swotobjid p_sender TYPE swotobjid p_retcode TYPE sy-subrc.
DATA: ls_itcpo TYPE itcpo. DATA: ls_repid TYPE sy-repid. DATA: ls_device TYPE tddevice.* DATA: ls_recipient TYPE swotobjid.* DATA: ls_sender TYPE swotobjid.
ls_repid = sy-repid.
CALL FUNCTION 'WFMC_PREPARE_SMART_FORM' EXPORTING pi_nast = nast pi_addr_key = p_addr_key pi_repid = ls_repid IMPORTING pe_returncode = p_retcode pe_itcpo = ls_itcpo pe_device = ls_device pe_recipient = p_recipient pe_sender = p_sender.
IF p_retcode = 0. MOVE-CORRESPONDING ls_itcpo TO p_composer_param.* P_composer_param-tdnoprint = 'X'. P_control_param-device = ls_device. P_control_param-no_dialog = 'X'. P_control_param-preview = gv_xscreen. P_control_param-getotf = ls_itcpo-tdgetotf. P_control_param-langu = nast-spras. ENDIF.ENDFORM. "set_print_param