Workflow for MIGO & MIRO
Hi Friends,
Can we do MIGO on single click against Purchase Order ?
Can we do MIRO on Single Click against Purchase order ? ( After GRN )
Thanks & Regards
Yogesh.
hi,
Single click is possible if you have maintained all the defaults as below,
1. Your PO qty will always be equal to your GR qty (so you need nt change the GR qty)
2. Sloc populate frm the PO (so no need to key the sloc)
3. Make the default OK in the MIGO default setting.
and if all this done then as soon you enter the PO and line item number you can just save it.
For MIRO,
Just make the ERS setting then no need to do any MIRO.
Thanks,
Suresh
Similar Messages
-
Hi SAP Guru
I want to activate workflow for Logistic invoice verification (MIRO)
My requirement is :- At the time of MIRO , system will post a payment bolck (say "P") and will not allow to make payment to the users and it will trigger a workflow . Once the same is release by the designated person ( in workflow) then only system should allow payment posting for the invoice.
Pls let me know how to activate this workflow.
Is it possible in standard system or we need to develop a workflow.?
pls let me know how to go about this
Regards
Ajayhi,
Single click is possible if you have maintained all the defaults as below,
1. Your PO qty will always be equal to your GR qty (so you need nt change the GR qty)
2. Sloc populate frm the PO (so no need to key the sloc)
3. Make the default OK in the MIGO default setting.
and if all this done then as soon you enter the PO and line item number you can just save it.
For MIRO,
Just make the ERS setting then no need to do any MIRO.
Thanks,
Suresh -
We want to stop Budget AVC checks for MIGO & MIRO in Live System
HI Everyone.
We are using Funds Management (BCS) and at the inital stage we are checking the budget at PR, PO, GR & Invoice level.
Now, due to the functional constraints we've decided to remove the Budget AVC checks for GR (MIGO) and IR (MIRO)
Note: At the movement we are not using any activity groups w.r.t tolerance groups, bcoz if we specify the activity groups for only PR & PO, system wont check the budget at GR & IR but, system will post the negative values (FMB_PT01)
So, as a work around, we've defined derivation steps at business transaction level (RMWE & RMRP) by assigning commitment item which is having financial transaction 40 & commitment item type 3, where system wont check the budget.
But, system is not performing the derivation based on this rule in PRD, where with the same config system able to work properly as we desired in DEV client and able to bypass the MIGO & MIRO.
Can anyone, give some suggestions or best way to achieve the said requirement of avoiding the AVC check @ MIGO & MIRO level.
Thanks in Advance.
Raja SekharDear Mar,
I've maintained the Pre-development parameters in PRD and it is working fine as per my Derivation rule.
Can you tell me is there is similar kind of parameter, for service entry sheet also for the same purpose.
i've tried by maintaining parameter FLG_SES_OVERWRITE in FM01X, due to which in ML81N system taking the fund center as per the derivation, but when i am creating PO for services, system is not able to derive the fund center,
where as previously, before maintaining the above parameter, system use to derive the fund center based on cost center, which is not working after this maintainance.
Any suggestions on this.
Thanks for your support
Raja Talluri -
Hey frnds
I am developing an object with help of abaper ,i just wanted to know in which table and feild i would find the date on which particular migo and miro are done for a particular material .
tahnks in advance.Hey frnds correct me if I am wrong
I choosed to work on EKBE table where feild BEWTP defins the PO history category contains all documents
depending on dat defining BWETP = E -
as GR and BWETP = R -
as IR and BUDAT will be defing the posting date of the documents depending on PO history category i.e BWETP
Regards
Swapnil -
Dear Experts,
I am beginner to workflow , i have one requirement after processing the miro t code i need to release the amount levle by level
for example amount is paid by vendor is 50000 person A has to release amount is 20000 means Person B has to release like this
for this one i tried BUS2081 and standard workflow WS90000001 workflow is not trigeering please give me the sugesstion how to solve this oneHi Mahesh,
Is there any entry with your workflow( WS90000001) in SWE2.
Goto SWUE transaction and give the business object and select the for which you event you want to trigger the work flow and click on object key button give the key values and click on event reciever. -
Report for MIGO done MIRO pending
All SAP Gurus,
We require the list of MIGO vs MIRO numbers, so that we can list out the MIGO for which MIRO have not been posted.
Is there any report by which we can we can list the MIGO vs MIRO numbers.
I'm aware of the fact that multiple MIRO can exist against a MIRO and vice versa.
Regards,Check table EKBE. PO History Category 'E' for GR and 'Q' for Invoice.
Hope this will also help you in future.
Thnx
Abhi -
Difference in Profit center for GR/IR account in MIGO & MIRO Transaction
1) We have created material 106267 with material type ROH. We have assigned profit center 1001052999 (common profit center) to material.
2) We have created WBS element MUM-RIV002.SS.RC.RF with profit center 1001052002.
3) We have created PO 4000000236 for account assignment category u2018Qu2019 for the above material with WBS element MUM-RIV002.SS.RC.RF . After posting GRN for PO 4000000236 we have identified that for GR/IR account profit center is taken from material master & for stock account profit center is taken from WBS element.
Please find the below Flow
In MIGO
Entry
Accounting Document number in Entry View
5000001125
PSKY G/L Code Description
Amount
Curr.
Profit Center
WBS element
89 231101 RAW MATERIAL STOCK 2,000.00 INR 1001052002 MUM-RIV002.SS.RC.RF
96 162101 GR/IR-Material -2,000.00 INR 1001052999 MUM-RIV002.SS.RC.RF
Document number in Ledger View
L.item PK SG Account Description Amount Curr. Tx Profit Ctr WBS element
1 89 231101 RAW MATERIAL STOCK 2,000.00 INR 1001052002 MUM-RIV002.SS.RC.RF
2 96 162101 GR/IR-Material -2,000.00 INR 1001052999 MUM-RIV002.SS.RC.RF
3 50 162001 InterSegment Clrg -2,000.00 INR 1001052002
4 40 162001 InterSegment Clrg 2,000.00 INR 1001052999
It should take profit center from WBS element for GR/IR account & Stock account but for GR/IR account profit center is taking form material master & for stock account profit center is taking from WBS element.
MIRO
Entry
Accounting Document number Entry View
5100000657
PK SG Account Description Amount Curr. Tx Profit Ctr WBS element
31 100000 Ambuja Cement Ltd -1,996.00 INR V4
86 162101 GR/IR-Material 2,000.00 INR V4 1001052002 MUM-RIV002.SS.RC.RF
40 254001 VAT Receivable 80 INR V4
50 172103 TDS PAYABLE -194C -42 INR
50 176101 WCT-TDS payable -42 INR
Document number in Ledger View
PK SG Account Description Amount Curr. Tx Profit Ctr WBS element
31 160100 CRS-Domestic Supp -1,996.00 INR V4 1001052002
86 162101 GR/IR-Material 2,000.00 INR V4 1001052002 MUM-RIV002.SS.RC.RF
40 254001 VAT Receivable 80 INR V4 1001052002
50 172103 TDS PAYABLE -194C -42 INR 1001052002
50 176101 WCT-TDS payable -42 INR 1001052002
In the MIRO Accounting Document profit center for [162101] GR/IR-Material A/C has taken from WBS element
Please note that we are using document splitting with Profit center is mandatory
We have created same scenario for Cost center. After posting the GRN profit center is taken from cost center for both GR/IR account in MIGO & MIRO accounting documents.
Plez helpHello
ANy suggestion for question & if solved do let me know -
Workflow for payment release doesn't block the FI Document by tnx MIRO
Hi Gurus, we are implementing the Workflows for all the Payable Accounts, we don't have problem with txn FB60, the documents posted are automatically blocked but with txn MIRO it doesn't happen.
In customizing I set the "RE" Class Document (Invoice Verification) like the KR (Vendor FI Invoice) to work in that workflow.
Is the same case for the txn PRRW (travel management) in Travel expenses for example.
I appreciate your help.
Regards.!!HI,
How did you block payment for FB60? Is there any std BAPI available? Let me know because even i am in need of the same?
Regards,
Raj -
Payment release workflow for MIRO documents
Hi,
I have activated payment release function and successfully able to get workflow item for payment release for FI invoices posted through F-43 and FB60, but not on RE documents which are posted through MIRO,
Can some body provide inputs on how to trigger a payment release workflow for MIRO documents.
Thanks
AmanullahHi Amanullah, How are you?
Did you get an answer about this situation ? I am trying to do the same thing by FI or by MM and I'm worrying if we can to do by Standard SAP. In FI I'm trying to do via spro:
SAP Customizing Implementation Guide=>Financial Accounting=>Accounts Receivable and Accounts Payable=>Business Transactions=>Release for Payment
Did you remember how can you get the solution?
Thanks and regards,
Jeovana -
Trigger workflow for MIRO invoice creation
Hello,
In standard functionning it is not possible to trigger the workflow for documents coming from MM.
When using transaction MIRO and selecting invoice creation the created document has following value :
BKPF-AWTYP = 'RMRP'. whereas creating it from FB60 results to BKPF-AWTYP = 'BKPF'.
The problem is standard code checks AWTYP is not equal to 'RMRP' before creating event to start the standard workflow for invoice validation.
Question : why sap doesn't allow workflow creation for invoices from MIRO?
Thanks for your answers.
Best regards,
Laurent.Hi,
here they are...
WS20000397 MMIVBlockedP Treatment of inv. blkd for price, Log.IV
WS20001004 MMIVToRel Release the Completed Log. IV Document
WS00400026 MMIVquantity Treatment inv.blocked f.quantity reasons
WS20001003 MMIVToCompl Complete the Parked Log. IV Document
WS00400027 MMIVprice Treatment invoic.blocked f.price reasons
All of these workflows are a one-step / one-level of approval and needs some workflow configuration at least for the agent assignments. For a full-blown workflow you should take these workflows as an example, how you could work with it.
The last two workflows work with preliminary posting on the miro (transaction MIR7).
Best regards,
Florin -
Restriction for Migo if import custom miro is not done.
Dear Consultant ,
I want to put restriction over migo for import PO.
If the custom duty miro is not done , it should not allow /restrict user for migo.
Kidnly suggest user exit or badi or any other solution for the same.
Thanx
PradeepThe only problem with these notes is that it will not validate if custom duty invoice is passed? In case freight invoice is passed it considers that also as a valid document .
As suggested in the note you can use BADI: J_1IEXGM_BADI_LINE_MODIFY in that enhancement spot ( around line 996-997) and add the validation of in EKBZ for that PO, KSCHL= " custom duty condition" and it should give error message if invoice does not exist.
This logic will work if invoice is posted for the full qty.
Other wise you can use user exit and badi as suggested by Ajit , MB_MIGO_BADI, exit mbcf0002. in that logic if custom duty invocie is posted ( check in EKBZ- kschl= " what ever you custom duty conditions are for that EBELN and EBELP). If no then throw error message.
Regards
Sangeeta -
Migo & Miro Accounting Documents Report
Hello Abapers,
I have made the new ALV report as shown below :-
Report zaccounting no standard page heading line-size 300 line-count 40.
tables : mkpf, "Header: Material Document
mseg, "Document Segment: Material
bkpf, "Accounting Document Header
ekbe. "PO History Table
type-pools slis.
*DATA DECLARATION
data : pos type i,
l_layout type slis_layout_alv.
data gt_fieldcat type slis_t_fieldcat_alv.
data gt_sort type slis_t_sortinfo_alv.
data ls_fieldcat type slis_fieldcat_alv.
data is_print type slis_print_alv.
data it_events type slis_alv_event occurs 5.
data gs_variant type disvariant.
data t_list_top_of_page type slis_t_listheader.
data title like sy-title.
data : l_title(105) type c,
l_list(105) type c, "Store the Top-of-page headings
l_date(10) type c, "Store date in top-of-page
l_time(8) type c, "Store time in top-of-page
title1 like sy-title,
title2 like sy-title,
title3 like sy-title.
*-- Data Declaration
data : repid like sy-repid.
constants: x type c value 'X'.
data zawkey like bkpf-awkey.
types : begin of x_mkpf,
mblnr like mkpf-mblnr,
mjahr like mkpf-mjahr,
budat like mkpf-budat,
ebeln like mseg-ebeln,
ebelp like mseg-ebelp,
bwart like mseg-bwart,
matnr like mseg-matnr,
gsber like mseg-gsber,
werks like mseg-werks,
bukrs like bkpf-bukrs,
belnr like bkpf-belnr,
gjahr like bkpf-gjahr,
bukrs1 like bkpf-bukrs,
belnr1 like bkpf-belnr,
gjahr1 like bkpf-gjahr,
belnr2 like bkpf-belnr,
gjahr2 like bkpf-gjahr,
end of x_mkpf.
data : t_mkpf type standard table of x_mkpf with header line.
S E L E C T I O N - S C R E E N *
selection-screen begin of block b1 with frame title text-009.
select-options: s_budat for mkpf-budat obligatory.
select-options: s_bwart for mseg-bwart.
select-options: s_matnr for mseg-matnr.
select-options: s_gsber for mseg-gsber.
select-options: s_werks for mseg-werks.
selection-screen end of block b1.
start-of-selection.
break abapdev1.
select msegmblnr msegmjahr mkpf~budat
msegebeln msegebelp msegbwart msegmatnr mseggsber msegwerks
into table t_mkpf
from mkpf inner join mseg
on mkpfmblnr = msegmblnr
where budat in s_budat
and bwart in s_bwart
and matnr in s_matnr
and gsber in s_gsber
and werks in s_werks.
loop at t_mkpf.
select single belnr gjahr into (t_mkpf-belnr, t_mkpf-gjahr) from ekbe where ebeln = t_mkpf-ebeln
and ebelp = t_mkpf-ebelp
and lfbnr = t_mkpf-mblnr
and lfgja = t_mkpf-mjahr
and bewtp = 'Q'.
modify t_mkpf transporting belnr gjahr.
endloop.
loop at t_mkpf.
clear : zawkey.
concatenate t_mkpf-mblnr t_mkpf-mjahr into zawkey.
select single belnr gjahr into (t_mkpf-belnr1,t_mkpf-gjahr1) from bkpf
where awtyp = 'MKPF'
and awkey = zawkey.
break abapdev1.
clear : zawkey.
concatenate t_mkpf-belnr t_mkpf-gjahr into zawkey.
select single belnr gjahr into (t_mkpf-belnr2,t_mkpf-gjahr2) from bkpf
where awtyp = 'RMRP'
and awkey = zawkey.
modify t_mkpf transporting belnr1 gjahr1 belnr2 gjahr2.
endloop.
ls_fieldcat-col_pos = '1'.
ls_fieldcat-fieldname = 'BUDAT'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BUDAT'.
ls_fieldcat-ref_tabname = 'MKPF'.
ls_fieldcat-seltext_l = 'PSG DATE'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-fieldname = 'MBLNR'.
ls_fieldcat-tabname = 'X_MSEG'.
ls_fieldcat-ref_fieldname = 'MBLNR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIGO MAT DOCNO.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-fieldname = 'BELNR1'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BELNR1'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'FI DocNo.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-fieldname = 'GJAHR1'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GJAHR1'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'FI FiscalYr'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-fieldname = 'MJAHR'.
ls_fieldcat-tabname = 'X_MKPF'.
ls_fieldcat-ref_fieldname = 'MJAHR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIGO MATERIAL DOC. YEAR'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-fieldname = 'EBELN'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'EBELN'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'PO No.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-fieldname = 'EBELP'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'EBELP'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'PO ItemNo.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '7'.
ls_fieldcat-fieldname = 'BWART'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BWART'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'Mvt.Type'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '8'.
ls_fieldcat-fieldname = 'BELNR'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BELNR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO DocNo.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '9'.
ls_fieldcat-fieldname = 'GJAHR'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GJAHR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO FiscalYr'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '10'.
ls_fieldcat-fieldname = 'GSBER'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GSBER'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'BUS.AREA'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '11'.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'PLANT'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '12'.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'MATNR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MAT.NO'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '13'.
ls_fieldcat-fieldname = 'BELNR2'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BELNR2'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO FI Doc.No'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '14'.
ls_fieldcat-fieldname = 'GJAHR2'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GJAHR2'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO FI FiscalYr'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
*& Form ALV_GRID_DISPLAY
form alv_grid_display .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = sy-repid " 'ZRD_DD'
it_fieldcat = gt_fieldcat "catalogue field
i_callback_top_of_page = 'TOP_PAGE'
is_layout = l_layout
it_sort = gt_sort
i_default = 'X'
i_save = 'A'
is_variant = gs_variant
it_events = it_events
is_print = is_print
tables
t_outtab = t_mkpf
exceptions
program_error = 1
others = 2
if sy-subrc <> 0.
message id sy-msgid type 'I' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ALV_GRID_DISPLAY
**& Form ALV_LAYOUT
*FORM alv_layout USING ps_layout TYPE slis_layout_alv.
ps_layout-get_selinfos = x.
ps_layout-colwidth_optimize = x.
ps_layout-detail_popup = x.
ps_layout-no_keyfix = x.
ps_layout-coltab_fieldname = 'CLR'.
ps_layout-key_hotspot = x.
ps_layout-group_change_edit = x.
ps_layout-zebra = 'X'.
*ENDFORM. " ALV_LAYOUT
**& Form ALV_PRINT
*FORM alv_print .
is_print-no_print_selinfos = x. " display no selection infos
is_print-no_coverpage = x.
is_print-no_new_page = x.
is_print-no_print_listinfos = x. " display no listinfos
*ENDFORM. " ALV_PRINT
**& Form TOP_OF_PAGE
form top_page.
data: ls_line type slis_listheader,
i_top_of_page type slis_t_listheader.
title = sy-title.
ls_line-typ = 'H'.
ls_line-info = title.
append ls_line to i_top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_top_of_page.
endform. "TOP_OF_PAGE
In this report , i have faced some problems :-
1. In MIGO numbers some cases MIRO doc. numbers are not shown against some migo doc. numbers whereas actually MIRO is already done.
2. The Problem in downloading the report, its not accurate download & the MIGO Document Number not shown when we download the report.
Thanks,
Sumit.Hi Sumit,
Im not sure if it will completely support ur needs but check it out
This is for MIRO.Note here business area is hardcoded.
REPORT zmm_miro_track.
TABLES : rseg, bkpf, bseg, lfa1, ekbe, skat, bsis .
AlV related data declarations
Type Pools
TYPE-POOLS: slis.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
Data Declaration file *
DATA : BEGIN OF it_rseg OCCURS 0,
belnr TYPE rseg-belnr,
gjahr TYPE rseg-gjahr,
ebeln TYPE rseg-ebeln,
ebelp TYPE rseg-ebelp,
bukrs TYPE rseg-bukrs,
awkey TYPE bkpf-awkey,
END OF it_rseg.
DATA : BEGIN OF it_bkpf OCCURS 0,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
xblnr TYPE bkpf-xblnr,
budat TYPE bkpf-budat,
awkey TYPE bkpf-awkey,
bukrs TYPE bkpf-bukrs,
belnr1 TYPE bkpf-belnr,
blart TYPE bkpf-blart,
END OF it_bkpf.
DATA : BEGIN OF it_bseg OCCURS 0,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
bupla TYPE bseg-bupla,
lifnr TYPE bseg-lifnr,
hkont TYPE bseg-hkont,
koart TYPE bseg-koart,
mwskz TYPE bseg-mwskz,
pswbt TYPE bseg-pswbt,
ebeln TYPE bseg-ebeln,
ebelp TYPE bseg-ebelp,
xref3 TYPE bseg-xref3,
bschl TYPE bseg-bschl,
shkzg TYPE bseg-shkzg,
miro_accnt TYPE bseg-hkont,
xblnr TYPE bkpf-xblnr,
budat TYPE bkpf-budat,
belnr1 TYPE bseg-belnr,
acdes(50),
belnr2 TYPE bseg-belnr,
belnr3 TYPE bseg-belnr,
gjahr1 TYPE bseg-gjahr,
hkont1 TYPE bseg-hkont,
pswbt1 TYPE bseg-pswbt,
budat1 TYPE ekbe-budat,
acdes1(50),
END OF it_bseg.
DATA : it_bseg1 LIKE it_bseg OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF it_bsis OCCURS 0,
belnr TYPE bsis-belnr,
gjahr TYPE bsis-gjahr,
bschl TYPE bsis-bschl,
xref3 TYPE bsis-xref3,
END OF it_bsis.
DATA : BEGIN OF it_lfa1 OCCURS 0,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
spras TYPE lfa1-spras,
END OF it_lfa1.
DATA : BEGIN OF it_skat OCCURS 0,
saknr TYPE skat-saknr,
txt20 TYPE skat-txt20,
txt50 TYPE skat-txt50,
spras TYPE skat-spras,
ktopl TYPE skat-ktopl,
END OF it_skat.
DATA : BEGIN OF it_ekbe OCCURS 0,
ebeln TYPE ekbe-ebeln,
ebelp TYPE ekbe-ebelp,
budat TYPE ekbe-budat,
bewtp TYPE ekbe-bewtp,
END OF it_ekbe.
DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_repid LIKE sy-repid.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv ,
gs_print TYPE slis_print_alv,
gt_sort TYPE slis_t_sortinfo_alv ,
gt_filter TYPE slis_t_filter_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_alv_graphics TYPE dtc_t_tc,
gt_excluding TYPE slis_t_extab ,
gt_events TYPE slis_t_event .
DATA: g_repid LIKE sy-repid.
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',
p_f2code LIKE sy-ucomm VALUE '&ETA',
p_lignam TYPE slis_fieldname VALUE 'LIGHTS',
g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant.
USER ENTRY PARAMETERS *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_belnr FOR rseg-belnr OBLIGATORY,
s_gjahr FOR rseg-gjahr OBLIGATORY,
s_budat FOR bkpf-budat.
SELECTION-SCREEN END OF BLOCK blk1.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM data_retrive.
PERFORM data_call_alv.
PERFORM build_layout.
END-OF-SELECTION.
*& Form DATA_CALL_ALV
text
--> p1 text
<-- p2 text
FORM data_call_alv .
g_repid = sy-repid.
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build CHANGING gt_events.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM display_report.
ENDFORM. " DATA_CALL_ALV
*& Form E01_FIELDCAT_INIT
text
-->P_GT_FIELDCAT[] text
FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: gs_sort TYPE slis_sortinfo_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR'.
ls_fieldcat-key = 'X'. "SUBTOTAL KEY
ls_fieldcat-col_pos = '1'.
ls_fieldcat-seltext_l = 'Accounting Doc'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR1'.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-seltext_l = 'IR Doc'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'XBLNR'.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-seltext_l = 'IR Reference'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUDAT'.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-seltext_l = 'IR Posting Date'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUPLA'.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-seltext_l = 'Business Place'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'HKONT'.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-seltext_l = 'G/L accounts Posted'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ACDES'.
ls_fieldcat-col_pos = '7'.
ls_fieldcat-seltext_l = 'G/L description'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MWSKZ'.
ls_fieldcat-col_pos = '8'.
ls_fieldcat-seltext_l = 'Tax Code'.
ls_fieldcat-outputlen = 8.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PSWBT'.
ls_fieldcat-col_pos = '9'.
ls_fieldcat-seltext_l = 'G/L Amount'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EBELN'.
ls_fieldcat-col_pos = '10'.
ls_fieldcat-seltext_l = 'Purchase Order'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EBELP'.
ls_fieldcat-col_pos = '11'.
ls_fieldcat-seltext_l = 'P.O.Line Item'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR2'.
ls_fieldcat-col_pos = '12'.
ls_fieldcat-seltext_l = 'GRN Doc '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR3'.
ls_fieldcat-col_pos = '13'.
ls_fieldcat-seltext_l = 'GRN FI Doc No.'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUDAT1'.
ls_fieldcat-col_pos = '14'.
ls_fieldcat-seltext_l = 'GR Posting Date '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. "e01_fieldcat_init
*& Form EVENTTAB_BUILD
text
<--P_GT_EVENTS text
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*& Form E04_COMMENT_BUILD
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
DATA : v_time(5) TYPE c.
DATA: ls_line TYPE slis_listheader.
DATA: ls_colr TYPE slis_specialcol_alv.
DATA : v_text(90) TYPE c.
CONCATENATE ' Report for MIRO track ':' ' INTO v_text SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text.
APPEND ls_line TO e04_lt_top_of_page.
ENDFORM. " E04_COMMENT_BUILD
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
**& Form DATA_RETRIVE
text
FORM data_retrive.
fetching Accounting Document Number and Fiscal year from Incoming Invoice table
SELECT belnr gjahr ebeln ebelp bukrs
INTO CORRESPONDING FIELDS OF TABLE it_rseg
FROM rseg
WHERE belnr IN s_belnr
AND gjahr IN s_gjahr
AND bukrs = '1000'.
LOOP AT it_rseg.
CONCATENATE it_rseg-belnr it_rseg-gjahr INTO it_rseg-awkey.
MODIFY it_rseg.
CLEAR it_rseg.
ENDLOOP.
IF it_rseg[] IS NOT INITIAL.
SELECT belnr gjahr xblnr budat awkey
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
FROM bkpf
FOR ALL ENTRIES IN it_rseg
WHERE awkey = it_rseg-awkey
AND budat IN s_budat
AND bukrs = '1000'
AND blart <> 'ML'.
ENDIF.
IF it_bkpf[] IS NOT INITIAL.
SELECT belnr gjahr bupla lifnr hkont koart mwskz pswbt ebeln ebelp xref3 bschl shkzg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
FROM bseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-belnr
AND gjahr = it_bkpf-gjahr.
ENDIF.
fetching G/L account description
IF it_bseg[] IS NOT INITIAL.
SELECT lifnr name1
INTO CORRESPONDING FIELDS OF TABLE it_lfa1
FROM lfa1
FOR ALL ENTRIES IN it_bseg
WHERE lifnr = it_bseg-lifnr
AND spras = 'EN'.
SELECT saknr txt20 txt50
INTO CORRESPONDING FIELDS OF TABLE it_skat
FROM skat
FOR ALL ENTRIES IN it_bseg
WHERE saknr = it_bseg-hkont
AND spras = 'EN'
AND ktopl = 'HRJL'.
SELECT ebeln ebelp budat
INTO CORRESPONDING FIELDS OF TABLE it_ekbe
FROM ekbe
FOR ALL ENTRIES IN it_bseg
WHERE ebeln = it_bseg-ebeln
AND ebelp = it_bseg-ebelp
AND bewtp = 'E'.
ENDIF.
LOOP AT it_bseg.
IF it_bseg-koart = 'K'.
it_bseg-miro_accnt = it_bseg-lifnr.
ELSE.
it_bseg-miro_accnt = it_bseg-hkont.
ENDIF.
IF it_bseg-shkzg = 'H'.
it_bseg-pswbt = it_bseg-pswbt * -1.
ENDIF.
it_bseg-belnr2 = it_bseg-xref3+4(10).
MODIFY it_bseg.
READ TABLE it_ekbe WITH KEY ebeln = it_bseg-ebeln
ebelp = it_bseg-ebelp.
IF sy-subrc = 0.
it_bseg-budat1 = it_ekbe-budat.
ENDIF.
READ TABLE it_bkpf WITH KEY belnr = it_bseg-belnr
gjahr = it_bseg-gjahr.
IF sy-subrc = 0.
it_bseg-belnr = it_bkpf-belnr.
it_bseg-gjahr = it_bkpf-gjahr.
it_bseg-xblnr = it_bkpf-xblnr.
it_bseg-budat = it_bkpf-budat.
it_bseg-belnr1 = it_bkpf-awkey+0(10).
ENDIF.
IF it_bseg-koart = 'K'.
READ TABLE it_lfa1 WITH KEY lifnr = it_bseg-miro_accnt.
IF sy-subrc = 0.
it_bseg-acdes = it_lfa1-name1.
ENDIF.
ELSE.
READ TABLE it_skat WITH KEY saknr = it_bseg-miro_accnt.
IF sy-subrc = 0.
IF it_skat-txt20 IS NOT INITIAL.
it_bseg-acdes = it_skat-txt20.
ELSE.
it_bseg-acdes = it_skat-txt50.
ENDIF.
ENDIF.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
it_bseg1[] = it_bseg[].
LOOP AT it_bseg1.
IF it_bseg1-xref3 = ''.
DELETE it_bseg1.
CLEAR it_bseg1.
ENDIF.
ENDLOOP.
IF it_bseg1[] IS NOT INITIAL.
SELECT belnr gjahr bschl xref3
FROM bsis
INTO CORRESPONDING FIELDS OF TABLE it_bsis
FOR ALL ENTRIES IN it_bseg1
WHERE xref3 = it_bseg1-xref3
AND gjahr = it_bseg1-gjahr
AND bschl = '96'.
ENDIF.
LOOP AT it_bseg.
READ TABLE it_bsis WITH KEY xref3 = it_bseg-xref3.
IF sy-subrc = 0.
it_bseg-belnr3 = it_bsis-belnr.
it_bseg-gjahr1 = it_bsis-gjahr.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
ENDFORM. "data_retrive
*& Form DISPLAY_REPORT
text
--> p1 text
<-- p2 text
FORM display_report .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = ''
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
it_filter = gt_filter[]
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
is_print = gs_print
it_alv_graphics = gt_alv_graphics[]
it_excluding = gt_excluding
TABLES
t_outtab = it_bseg.
ENDFORM. " DISPLAY_REPORT
*& Form build_layout
text
--> p1 text
<-- p2 text
FORM build_layout.
gs_layout-no_input = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-totals_text = 'Totals'(201).
gs_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " BUILD_LAYOUT
This is for MIGO.
REPORT zmm_migo_track.
TABLES : bseg, ekbe, skat, bsis.
AlV related data declarations
Type Pools
TYPE-POOLS: slis.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
Data Declaration file *
DATA : BEGIN OF it_bseg OCCURS 0,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
bukrs TYPE bseg-bukrs,
hkont TYPE bseg-hkont,
pswbt TYPE bseg-pswbt,
ebeln TYPE bseg-ebeln,
ebelp TYPE bseg-ebelp,
xref3 TYPE bseg-xref3,
shkzg TYPE bseg-shkzg,
budat TYPE ekbe-budat,
acdes(50),
belnr1 TYPE bseg-belnr,
END OF it_bseg.
DATA : it_bseg1 LIKE it_bseg OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF it_bsis OCCURS 0,
belnr TYPE bsis-belnr,
gjahr TYPE bsis-gjahr,
bschl TYPE bsis-bschl,
xref3 TYPE bsis-xref3,
END OF it_bsis.
DATA : BEGIN OF it_skat OCCURS 0,
saknr TYPE skat-saknr,
txt20 TYPE skat-txt20,
txt50 TYPE skat-txt50,
spras TYPE skat-spras,
ktopl TYPE skat-ktopl,
END OF it_skat.
DATA : BEGIN OF it_ekbe OCCURS 0,
ebeln TYPE ekbe-ebeln,
ebelp TYPE ekbe-ebelp,
budat TYPE ekbe-budat,
bewtp TYPE ekbe-bewtp,
END OF it_ekbe.
DATA : fiscal_year_low(4),
fiscal_year_high(4).
DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_repid LIKE sy-repid.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv ,
gs_print TYPE slis_print_alv,
gt_sort TYPE slis_t_sortinfo_alv ,
gt_filter TYPE slis_t_filter_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_alv_graphics TYPE dtc_t_tc,
gt_excluding TYPE slis_t_extab ,
gt_events TYPE slis_t_event .
DATA: g_repid LIKE sy-repid.
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',
p_f2code LIKE sy-ucomm VALUE '&ETA',
p_lignam TYPE slis_fieldname VALUE 'LIGHTS',
g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant.
USER ENTRY PARAMETERS *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_belnr FOR bseg-belnr OBLIGATORY,
s_budat FOR ekbe-budat OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN.
IF s_budat-low IS NOT INITIAL.
CALL FUNCTION 'GM_GET_FISCAL_YEAR'
EXPORTING
i_date = s_budat-low
i_fyv = 'V3'
IMPORTING
e_fy = fiscal_year_low
EXCEPTIONS
FISCAL_YEAR_DOES_NOT_EXIST = 1
NOT_DEFINED_FOR_DATE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
IF s_budat-high IS NOT INITIAL.
CALL FUNCTION 'GM_GET_FISCAL_YEAR'
EXPORTING
i_date = s_budat-high
i_fyv = 'V3'
IMPORTING
e_fy = fiscal_year_high
EXCEPTIONS
FISCAL_YEAR_DOES_NOT_EXIST = 1
NOT_DEFINED_FOR_DATE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM data_retrive.
PERFORM data_call_alv.
PERFORM build_layout.
END-OF-SELECTION.
*& Form DATA_CALL_ALV
text
--> p1 text
<-- p2 text
FORM data_call_alv .
g_repid = sy-repid.
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build CHANGING gt_events.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM display_report.
ENDFORM. " DATA_CALL_ALV
*& Form E01_FIELDCAT_INIT
text
-->P_GT_FIELDCAT[] text
FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: gs_sort TYPE slis_sortinfo_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR1'.
ls_fieldcat-col_pos = '1'.
ls_fieldcat-seltext_l = 'GRN Doc '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR'.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-seltext_l = 'GRN FI Doc No.'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUDAT'.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-seltext_l = 'GR Posting Date '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'HKONT'.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-seltext_l = 'Account Assignment'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ACDES'.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-seltext_l = 'Description'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PSWBT'.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-seltext_l = 'G/L Amount'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. "e01_fieldcat_init
*& Form EVENTTAB_BUILD
text
<--P_GT_EVENTS text
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*& Form E04_COMMENT_BUILD
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
DATA : v_time(5) TYPE c.
DATA: ls_line TYPE slis_listheader.
DATA: ls_colr TYPE slis_specialcol_alv.
DATA : v_text(90) TYPE c.
CONCATENATE ' Report for MIGO track ':' ' INTO v_text SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text.
APPEND ls_line TO e04_lt_top_of_page.
ENDFORM. " E04_COMMENT_BUILD
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
**& Form DATA_RETRIVE
text
FORM data_retrive.
fetching migo G/L account
IF fiscal_year_high IS NOT INITIAL.
SELECT belnr gjahr hkont pswbt ebeln ebelp xref3 shkzg
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
WHERE belnr IN s_belnr
AND gjahr BETWEEN fiscal_year_low AND fiscal_year_high
AND bukrs = '1000'.
ELSE.
SELECT belnr gjahr hkont pswbt ebeln ebelp xref3 shkzg
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
WHERE belnr IN s_belnr
AND gjahr = fiscal_year_low
AND bukrs = '1000'.
ENDIF.
fetching G/L account description
IF it_bseg[] IS NOT INITIAL.
SELECT saknr txt20 txt50
INTO CORRESPONDING FIELDS OF TABLE it_skat
FROM skat
FOR ALL ENTRIES IN it_bseg
WHERE saknr = it_bseg-hkont
AND spras = 'EN'
AND ktopl = 'HRJL'.
SELECT ebeln ebelp budat
INTO CORRESPONDING FIELDS OF TABLE it_ekbe
FROM ekbe
FOR ALL ENTRIES IN it_bseg
WHERE ebeln = it_bseg-ebeln
AND ebelp = it_bseg-ebelp
AND bewtp = 'E'.
ENDIF.
LOOP AT it_bseg.
IF it_bseg-shkzg = 'H'.
it_bseg-pswbt = it_bseg-pswbt * -1.
ENDIF.
MODIFY it_bseg.
READ TABLE it_ekbe WITH KEY ebeln = it_bseg-ebeln
ebelp = it_bseg-ebelp.
IF sy-subrc = 0.
it_bseg-budat = it_ekbe-budat.
ENDIF.
READ TABLE it_skat WITH KEY saknr = it_bseg-hkont.
IF sy-subrc = 0.
IF it_skat-txt20 IS NOT INITIAL.
it_bseg-acdes = it_skat-txt20.
ELSE.
it_bseg-acdes = it_skat-txt50.
ENDIF.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
it_bseg1[] = it_bseg[].
LOOP AT it_bseg1.
IF it_bseg1-xref3 = ''.
DELETE it_bseg1.
CLEAR it_bseg1.
ENDIF.
ENDLOOP.
LOOP AT it_bseg.
READ TABLE it_bseg1 WITH KEY belnr = it_bseg-belnr.
IF sy-subrc = 0.
it_bseg-belnr1 = it_bseg1-xref3+4(10).
it_bseg-xref3 = it_bseg1-xref3.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
ENDFORM. "data_retrive
*& Form DISPLAY_REPORT
text
--> p1 text
<-- p2 text
FORM display_report .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = ''
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
it_filter = gt_filter[]
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
is_print = gs_print
it_alv_graphics = gt_alv_graphics[]
it_excluding = gt_excluding
TABLES
t_outtab = it_bseg.
ENDFORM. " DISPLAY_REPORT
*& Form build_layout
text
--> p1 text
<-- p2 text
FORM build_layout.
gs_layout-no_input = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-totals_text = 'Totals'(201).
gs_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " BUILD_LAYOUT -
Substitution of account(HKONT) when posting in MIGO/MIRO
Issue: Need to change account(HKONT) when posting in MIGO/MIRO
example: HKONT(GL Account) KTOSL(Transaction type)
1000000001 XX1
1000000002 XX2
1000000003 XX3
If XX3 exist then replace hkont of XX1 to hkont of XX2
expected result is:
1000000002 XX1
1000000002 XX2
1000000003 XX3
Solution with problems:
1. Used substitution GGB1>Financial Account>line item for field HKONT. My problem with this is, since the data is in line item. How can I get the replacement of my account(shown above sample). if BSEG structure only shows 1 line item. I tried using bool_data-bseg. but its empty. Im assuming bool_data is used when callup 003(complete document) is triggered.
I used subtitution field G/L - Exit <UXXX>
Any Ideas or solutions would be great!!if your Substituion exit is called then you can directly change the value of
BSEG-HKONT there according to your requirement. -
Interactive alv report with migo miro and purchase order
hi all
to make my alv interactive i put the following code....
i dont know whether it is correct or not coz i hav not done alv before
FORM display.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
is_layout = wa_layout
I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
it_fieldcat = it_fieldcat
TABLES
t_outtab = itab.
ENDFORM. "DISPLAY
FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'EBELN'.
READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.
SET PARAMETER ID 'ITAB-EBELN' FIELD ITAB-EBELN.
call transaction 'ME23N' AND SKIP FIRST SCREEN.
CLEAR RS_SELFIELD.
ENDIF.
ENDCASE.
ENDFORM. "HANDLE_USER_COMMAND
this code is working
but i hav some problems
when ever i double click on PO number
1. it always opne the last PO number of the my alv list
2. I want to open the migo with migo number when i double clik on the migo number
3. and same for the MIRO
plz help its very urgent...
points wil b rewarded.Hi,
Following report will explains how to do interactive list in alv report regarding purchase order. Kindly go through that one.
REPORT YMS_ALVINTERSAMPLE NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838.
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "EVENT_CALL
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
text
-->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "display_alv_report
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG_EKPO
text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "event_call_ekpo
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
Thanks,
Sankar M -
Hi,
For Goods reciept for Kanban material there is transaction called PKBC. Inside this transaction we wrote two BDC's i.e One for MIGO (with only Part1) & J1iex(Capturing & posting the excise invoice). After running this we found that accounting document contains all the entries including Part2. But During MIRO we are not getting excise amount which is payable to the vendor.
Please help me to resolve this. Incase if you need any clarification please ket me know.
Thanks in advance
Regards,
Krishna A S Vwhy r u using two BDC
why dont u use only one and update Part I and Part II at a time
regards,
snb
Maybe you are looking for
-
Edit in Photoshop CC command in Lightroom 5 opens older version of PS CC
On OS X mavericks 10.9.2 in Lightroom 5.3 everytime I use any of the edit in Photoshop CC commands it always launches an older version 14.00 vs the newer 14.2
-
I need the right download file for CS4 Design standard.
i can not install cs4 from the cd's i bought a few years ago and i can not find the right download file so i can go use again
-
Modlue programming guide!
Need some help in module pool programming guide !
-
Dpubt in MM Modulefrom ABAP point of View
Hi Guys, Can anybody tell where can we find the field which has the meaning like Shipping Address Code ,Confirm Order and Delivery date? Thanks, Gopi
-
Yeah if you are a noob who thinks your macbook is not vulnerable and you cannot get trojans don't bother responding. Even though I declined those pop up adds and said no to download, I still acquired a trojan and my pro is running extremely sluggish