Function Point Analysis Report
Hi!
We use Function Point Analysis Report in Oracle Designer 6.0 (it exist even in Designer 1.3.2) and now we´re migrating to Oracle Designer 9i.
I was trying to use "Function Point Analysis Report" in Oracle Designer 9i but it doesn´t exist anymore.
Does anybody knows how to get function point analysis report now?
Or does anybody have any suggestion on how to get this report?
These reports were removed in the move from 6.0 to 6i. You can create your own repository reports if you need them. There is a document on OTN describing how you can do this on the Repository Site, under a section called Sample code: http://otn.oracle.com/sample_code/products/scm/index.html
Regards
Sue Harper
Similar Messages
-
Function Point Analysis in SAP
Dear All,
I am a Technical Consultant, currently working with the Quality Team on a temporary basis.
Can anyone please point out how to perform estimation of projects in SAP with the help of Function Point (FP).
If it is difficult with FP then give some alternate methods.
Regards,
Arun Krishnan.GDear,
As found in other reply as: Function Point Analysis is independent of technology, methodology or platform, so there is no function point analysis specific for sap, rather you should familiarize with the fundamentals of FPA.
And as you might know, FAP is used to determine whether a given a tool, an environment or a language is more productive when compared to others.
There are lot of links you can found related to FPA and IFPUG. Check with net search.
Regards,
Syed Hussain. -
Function Point Analysis for SAP BW Projects
Hello All,
Have been assigned a task to come up with Function Point
analysis for SAP BW projects.
Any help will be appreciated.
Thanks,
MainakHi Mainak,
Function Point Analysis is independent of technology, methodology or platform, so there is no function point analysis specific for sap bw, rather you should familiarize with the fundamentals of FPA.
And as you might know, FAP is used to determine whether a given a tool, an environment or a language is more productive when compared to others.
I can send you good links if you can give me your email-id.
Hope this helps...
Thanks,
Raj -
Functional Spec for VENDOR AGE ANALYSIS report
Hi experts
I need to develope a VENDOR AGE ANALYSIS REPORT. But due to some reason i cant be able to get the Functional Specification for that object. So could you please help me by sending the above mention functional Specification.
thanks and regadrs
Pratikgot the following from sdn thread:
This is the sample report for vendor aging:
Std reports Tcodes are:
customer : s_alr_87012178
vendor : s_alr_87012084
Custom designed:
REPORT zfi_customer_ageing
NO STANDARD PAGE HEADING
LINE-COUNT 58
line-size 168
MESSAGE-ID zh_msg.
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: kna1, " Customer Master (General)
t001, " Company Codes
rfpdo.
I N T E R N A L T A B L E S D E C L A R A T I O N S *
Internal Table for Customer Open Items Data
DATA: BEGIN OF int_bsid OCCURS 0,
kunnr LIKE bsid-kunnr, " Customer Number
name1 LIKE kna1-name1, " Customer Name
shkzg LIKE bsid-shkzg, " Dr/Cr Indicator
belnr LIKE bsid-belnr, " Document Number
xblnr LIKE bsid-xblnr, " Ref Doc No
blart LIKE bsid-blart, " Document Type
zfbdt LIKE bsid-zfbdt, " Base Line Date
zbd1t LIKE bsid-zbd1t, " Due date1
zbd2t LIKE bsid-zbd2t, " Due Date2
zbd3t LIKE bsid-zbd3t, " Due Date3
waers LIKE bsid-waers, " Currency
dmbtr LIKE bsid-dmbtr, " Amount in Local Curr
END OF int_bsid.
Internal Table for Amounts Sum Up Data
DATA: BEGIN OF int_final OCCURS 0,
kunnr LIKE bsid-kunnr, " Customer Number
name1 LIKE kna1-name1, " Customer Name
total1 LIKE bsid-dmbtr, " Amount in Local Curr
total2 LIKE bsid-dmbtr, " Amount in Local Curr
total3 LIKE bsid-dmbtr, " Amount in Local Curr
total4 LIKE bsid-dmbtr, " Amount in Local Curr
total5 LIKE bsid-dmbtr, " Amount in Local Curr
total6 LIKE bsid-dmbtr, " Amount in Local Curr
total LIKE bsid-dmbtr, " Amount in Local Curr
END OF int_final.
D A T A D E C L A R A T I O N S
DATA : v_flag, " Flag
v_gtotal1 LIKE bsid-dmbtr, " Amount Totals
v_gtotal2 LIKE bsid-dmbtr, " Amount Totals
v_gtotal3 LIKE bsid-dmbtr, " Amount Totals
v_gtotal4 LIKE bsid-dmbtr, " Amount Totals
v_gtotal5 LIKE bsid-dmbtr, " Amount Totals
v_gtotal6 LIKE bsid-dmbtr, " Amount Totals
v_gtotal LIKE bsid-dmbtr, " Amount Totals
v_subtotal1 LIKE bsid-dmbtr, " Amount Totals
v_subtotal2 LIKE bsid-dmbtr, " Amount Totals
v_subtotal3 LIKE bsid-dmbtr, " Amount Totals
v_subtotal4 LIKE bsid-dmbtr, " Amount Totals
v_subtotal5 LIKE bsid-dmbtr, " Amount Totals
v_subtotal6 LIKE bsid-dmbtr, " Amount Totals
v_subtotal LIKE bsid-dmbtr, " Amount Totals
v_date LIKE bsid-zfbdt, " Due Date
v_tage1(4), " Age 30 days
v_tage2(4), " Age 60 days
v_tage3(4), " Age 90 days
v_fir(15), " Column Text1
v_sec(15), " Column Text2
v_thir(15), " Column Text3
v_four(17), " Column Text4
v_fidd(4), " Days field1
v_sedd(4), " Days field2
v_thdd(4), " Days field3
v_fodd(4), " Days field4
v_str TYPE SY-LISEL, " String
v_str1(11), " String
v_tage(3), " String
v_date1(10). " Date field
R A N G E D E C L A R A T I O N S
RANGES: r_date1 FOR bsid-zfbdt, " Date Range 1
r_date2 FOR bsid-zfbdt, " Date Range 2
r_date3 FOR bsid-zfbdt, " Date Range 3
r_date4 FOR bsid-zfbdt. " Date Range 4
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-001.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr. "Customer account
PARAMETERS: p_bukrs LIKE t001-bukrs. "Co. Code
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.
"Open items at key date
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',
p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',
p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',
p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.
SELECTION-SCREEN END OF BLOCK b3.
A T S E L E C T I O N S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_flds.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P O F P A G E
Header
TOP-OF-PAGE.
PERFORM header.
E N D O F P A G E
Footer
END-OF-PAGE.
ULINE.
T O P O F P A G E D U R I N G L I N E S E L E C T I O N *
Top of Page in Secondary List
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM header1.
A T L I N E S E L E C T I O N *
AT LINE-SELECTION.
Perform Line Selections
PERFORM line_selection.
E N D O F S E L E C T I O N
END-OF-SELECTION.
List generation
PERFORM basic_list.
*& Form validate_flds
Validation of Selection Screen fields
FORM validate_flds .
Validate Customer Code
CLEAR kna1-kunnr.
SELECT kunnr UP TO 1 ROWS
INTO kna1-kunnr
FROM kna1
WHERE kunnr IN s_kunnr AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Customer Code range'(023).
ENDIF.
Validate Company Code
CLEAR t001-bukrs.
SELECT bukrs UP TO 1 ROWS
INTO t001-bukrs
FROM t001
WHERE bukrs = p_bukrs AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e021. " Invalid Company Code range
ENDIF.
IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR
( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 1 greater'(004)
'than Column# 2 or 3 or 4'(005).
ENDIF.
*column 2
IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 2 greater'(006)
'than Column# 3 or 4'(007).
ENDIF.
*column3
IF ( p_tage3 > p_tage4 ).
MESSAGE e999 WITH 'Column 3 greater'(008)
'than Column#4'(009).
ENDIF.
ENDFORM. " validate_flds
*& Form fetch_data
Fetching Data from Database Tables
FORM fetch_data .
Date Range Population
r_date1-sign = 'I'.
r_date1-option = 'BT'.
r_date1-low = p_allgst.
r_date1-high = r_date1-low + p_tage1.
APPEND r_date1.
r_date2-sign = 'I'.
r_date2-option = 'BT'.
r_date2-low = r_date1-high + 1.
r_date2-high = r_date1-low + p_tage2.
APPEND r_date2.
r_date3-sign = 'I'.
r_date3-option = 'BT'.
r_date3-low = r_date2-high + 1.
r_date3-high = r_date1-low + p_tage3.
APPEND r_date3.
r_date4-sign = 'I'.
r_date4-option = 'BT'.
r_date4-low = r_date3-high + 1.
r_date4-high = r_date1-low + p_tage4.
APPEND r_date4.
Select the Customer Open Items data from bsid
SELECT l~kunnr
l1~name1
b~waers
b~dmbtr
b~zfbdt
b~zbd1t
b~zbd2t
b~zbd3t
b~belnr
b~xblnr
b~shkzg
b~blart
INTO CORRESPONDING FIELDS OF TABLE int_bsid
FROM knb1 AS l INNER JOIN kna1 AS l1
ON lkunnr = l1kunnr
INNER JOIN bsid AS b
ON lkunnr = bkunnr AND
lbukrs = bbukrs
WHERE l~kunnr IN s_kunnr AND
l~bukrs = p_bukrs and
b~zfbdt le p_allgst.
IF SY-SUBRC 0.
MESSAGE i000 WITH 'No Data found'(027).
ENDIF.
Removing the date limit to get the due items in the past
DELETE int_bsid WHERE
( blart NE 'RE' AND blart NE 'KR' ) OR
shkzg NE 'H'.
SORT int_bsid BY kunnr.
ENDFORM. " fetch_data
*& Form header
Display the Report Columns
FORM header .
v_tage1 = p_tage1 + 1.
v_tage2 = p_tage2 + 1.
v_tage3 = p_tage3 + 1.
v_fidd = p_tage1.
v_sedd = p_tage2.
v_thdd = p_tage3.
v_fodd = p_tage4.
MOVE v_fodd0(4) TO v_fodd1(3).
v_fodd+0(1) = space.
CONCATENATE '1 to'(010) v_fidd INTO v_fir.
CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.
CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.
CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Summary of Ageing Analysis for Customer Open Invoices as on'(013)
v_date1 into v_str separated by space.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = 'Saudi International Petrochemical Company'(012)
title2 = v_str.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
FORMAT COLOR 1 INTENSIFIED.
WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,
50(101) 'Invoices Due For(In Days)'(014) CENTERED,
151 sy-vline, 168 sy-vline .
WRITE :/1 sy-vline, 2(11) 'Customer#'(015) CENTERED,
13 sy-vline ,14(35) 'Customer Name'(016) CENTERED,
49 sy-vline,
50(101) sy-uline,151 sy-vline,
152(16) 'Total'(017) CENTERED,
168 sy-vline.
WRITE : /1 sy-vline,13 sy-vline, 49 sy-vline,
50(16) v_fir CENTERED, 66 sy-vline,
67(16) v_sec CENTERED, 83 sy-vline,
84(16) v_thir CENTERED, 100 sy-vline,
101(16) v_four CENTERED, 117 sy-vline,
118(16) v_str1 centered, 134 sy-vline,
135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,
168 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
ENDFORM. " header
*& Form basic_list
Display the Basic List
FORM basic_list .
NEW-PAGE LINE-SIZE 168.
LOOP AT int_bsid.
CLEAR v_date.
IF int_bsid-zbd3t ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd3t.
ELSE.
IF int_bsid-zbd2t ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd2t.
ELSE.
v_date = int_bsid-zfbdt + int_bsid-zbd1t.
ENDIF.
ENDIF.
IF int_bsid-zbd1t = ' '.
v_date = int_bsid-zfbdt.
ENDIF.
IF v_date IN r_date1.
int_final-total1 = int_final-total1 + int_bsid-dmbtr.
ELSEIF v_date IN r_date2.
int_final-total2 = int_final-total2 + int_bsid-dmbtr.
ELSEIF v_date IN r_date3.
int_final-total3 = int_final-total3 + int_bsid-dmbtr.
ELSEIF v_date IN r_date4.
int_final-total4 = int_final-total4 + int_bsid-dmbtr.
ELSEif v_date > r_date4-high.
int_final-total5 = int_final-total5 + int_bsid-dmbtr.
ELSEif v_date < p_allgst.
int_final-total6 = int_final-total6 + int_bsid-dmbtr.
ENDIF.
AT END OF kunnr.
v_flag = 1.
ENDAT.
IF v_flag = 1.
int_final-kunnr = int_bsid-kunnr.
int_final-name1 = int_bsid-name1.
int_final-total = int_final-total1 + int_final-total2 +
int_final-total3 + int_final-total4 + int_final-total5 +
int_final-total6.
APPEND int_final.
v_gtotal1 = v_gtotal1 + int_final-total1.
v_gtotal2 = v_gtotal2 + int_final-total2.
v_gtotal3 = v_gtotal3 + int_final-total3.
v_gtotal4 = v_gtotal4 + int_final-total4.
v_gtotal5 = v_gtotal5 + int_final-total5.
v_gtotal6 = v_gtotal6 + int_final-total6.
v_gtotal = v_gtotal + int_final-total.
WRITE: /1 sy-vline,
2 int_final-kunnr COLOR 4 INTENSIFIED ON,
13 sy-vline,
14 int_final-name1 COLOR 4 INTENSIFIED ON,
49 sy-vline.
DATA : v_rem.
v_rem = sy-tabix MOD 2.
IF v_rem NE 0.
FORMAT COLOR 2 INTENSIFIED.
WRITE : 50 int_final-total1 CURRENCY int_bsid-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsid-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsid-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsid-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsid-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsid-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsid-waers,
168 sy-vline.
ELSE.
WRITE : 50 int_final-total1 CURRENCY int_bsid-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsid-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsid-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsid-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsid-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsid-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsid-waers,
168 sy-vline.
ENDIF.
FORMAT COLOR OFF.
HIDE int_final.
CLEAR int_final.
v_flag = 0.
ENDIF.
AT LAST.
WRITE : /1(168) sy-uline.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline, 2(47) 'GRAND TOTAL'(022) CENTERED,
49 sy-vline, 50 v_gtotal1 CURRENCY int_bsid-waers,
66 sy-vline, 67 v_gtotal2 CURRENCY int_bsid-waers,
83 sy-vline, 84 v_gtotal3 CURRENCY int_bsid-waers,
100 sy-vline,101 v_gtotal4 CURRENCY int_bsid-waers,
117 sy-vline,118 v_gtotal5 CURRENCY int_bsid-waers,
134 sy-vline,135 v_gtotal6 CURRENCY int_bsid-waers,
151 sy-vline,152 v_gtotal CURRENCY int_bsid-waers,
168 sy-vline.
HIDE : v_gtotal1,
v_gtotal2,
v_gtotal3,
v_gtotal4,
v_gtotal5,
v_gtotal6,
v_gtotal.
ENDAT.
FORMAT COLOR OFF.
ENDLOOP.
WRITE : /1(168) sy-uline.
ENDFORM. " basic_list
*& Form line_selection
When double clicked on the line display the seconday list
FORM line_selection .
NEW-PAGE LINE-SIZE 206.
Sy-lsind = 1.
DATA : v_rem,v_cnt LIKE sy-tabix.
v_cnt = 0.
SORT int_bsid BY belnr zfbdt.
LOOP AT int_bsid WHERE kunnr EQ int_final-kunnr.
v_rem = v_cnt MOD 2.
CLEAR v_date.
IF int_bsid-zbd3t ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd3t.
ELSE.
IF int_bsid-zbd2t ' '.
v_date = int_bsid-zfbdt + int_bsid-zbd2t.
ELSE.
v_date = int_bsid-zfbdt + int_bsid-zbd1t.
ENDIF.
ENDIF.
IF int_bsid-zbd1t = ' '.
v_date = int_bsid-zfbdt.
ENDIF.
IF v_rem NE 0.
format color 2 intensified.
WRITE :/1 sy-vline, 2 int_bsid-belnr,
12 sy-vline,13 int_bsid-kunnr,
23 sy-vline,24 int_bsid-name1,
59 sy-vline,60 int_bsid-xblnr,
76 sy-vline,77 int_bsid-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline, 189 sy-vline,
190 int_bsid-dmbtr CURRENCY int_bsid-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsid-dmbtr.
WRITE : 88 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsid-dmbtr.
WRITE : 105 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsid-dmbtr.
WRITE : 122 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsid-dmbtr.
WRITE : 139 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsid-dmbtr.
WRITE : 156 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsid-dmbtr.
WRITE : 173 int_bsid-dmbtr CURRENCY int_bsid-waers.
ENDIF.
format color off.
ELSE.
WRITE :/1 sy-vline, 2 int_bsid-belnr,
12 sy-vline,13 int_bsid-kunnr,
23 sy-vline,24 int_bsid-name1,
59 sy-vline,60 int_bsid-xblnr,
76 sy-vline,77 int_bsid-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline,189 sy-vline,
190 int_bsid-dmbtr CURRENCY int_bsid-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsid-dmbtr.
WRITE : 88 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsid-dmbtr.
WRITE : 105 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsid-dmbtr.
WRITE : 122 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsid-dmbtr.
WRITE : 139 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsid-dmbtr.
WRITE : 156 int_bsid-dmbtr CURRENCY int_bsid-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsid-dmbtr.
WRITE : 173 int_bsid-dmbtr CURRENCY int_bsid-waers.
ENDIF.
ENDIF.
FORMAT COLOR OFF.
v_cnt = v_cnt + 1.
ENDLOOP.
WRITE : /1(206) sy-uline.
v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3
+ v_subtotal4 + v_subtotal5 + v_subtotal6.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline,
2(85) 'Total'(017) CENTERED CURRENCY int_bsid-waers ,
87 sy-vline,
88 v_subtotal1 CURRENCY int_bsid-waers,
104 sy-vline,
105 v_subtotal2 CURRENCY int_bsid-waers,
121 sy-vline,
122 v_subtotal3 CURRENCY int_bsid-waers,
138 sy-vline,
139 v_subtotal4 CURRENCY int_bsid-waers,
155 sy-vline,
156 v_subtotal5 CURRENCY int_bsid-waers,
172 sy-vline,
173 v_subtotal6 CURRENCY int_bsid-waers,
189 sy-vline,
190 v_subtotal CURRENCY int_bsid-waers,
206 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(206) sy-uline.
CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,
v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,
v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.
ENDFORM. " line_selection
*& Form header1
Secondary List Header
FORM header1 .
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Details of Ageing Analysis for Customer Open Invoices as on'(024)
v_date1 into v_str separated by space.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = 'Saudi International Petrochemical Company'(012)
title2 = v_str.
FORMAT COLOR 1 intensified.
WRITE :/1(206) sy-uline.
WRITE :/1 sy-vline,12 sy-vline ,
23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,
88(101) 'Invoices Due For(In Days)'(014) CENTERED,
189 sy-vline,206 sy-vline.
WRITE : /1 sy-vline, 2(10) 'Doc Number'(021) CENTERED,
12 sy-vline, 13(10) 'Customer#'(015) CENTERED,
23 sy-vline, 24(35) 'Customer Name'(016) CENTERED,
59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,
76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,
87 sy-vline, 88(101) sy-uline,
189 sy-vline,190(16) 'Total'(017) CENTERED,
206 sy-vline.
WRITE : /1 sy-vline, 12 sy-vline,
23 sy-vline,59 sy-vline,
76 sy-vline,87 sy-vline,
88(16) v_fir CENTERED, 104 sy-vline,
105(16) v_sec CENTERED, 121 sy-vline,
122(16) v_thir CENTERED, 138 sy-vline,
139(16) v_four CENTERED, 155 sy-vline,
156(16) v_str1 CENTERED,
172 sy-vline,
173(16) 'Already Overdue'(018) CENTERED,
189 sy-vline,
206 sy-vline.
format color off.
WRITE : /1(206) sy-uline.
ENDFORM. " header1
REPORT zfi_vendor_ageing
NO STANDARD PAGE HEADING
LINE-COUNT 58
line-size 168
MESSAGE-ID zh_msg.
Report Name : Vendor Open Items Ageing Report
Purpose : This report displays the Vendor Open Items based on
different Ageing days (Calculated by taking the Base
Line date and the days mentioned in Payment Terms)
M O D I F I C A T I O N L O G
Date | Change Number | Initials | Description
30-Aug-2004 | DTSK900**** | Anji Reddy | Initial
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: lfa1, " Vendor Master (General)
t001, " Company Codes
rfpdo.
I N T E R N A L T A B L E S D E C L A R A T I O N S *
Internal Table for Vendor Open Items Data
DATA: BEGIN OF int_bsik OCCURS 0,
lifnr LIKE bsik-lifnr, " Vendor Number
name1 LIKE lfa1-name1, " Vendor Name
shkzg LIKE bsik-shkzg, " Dr/Cr Indicator
belnr LIKE bsik-belnr, " Document Number
xblnr LIKE bsik-xblnr, " Ref Doc No
blart LIKE bsik-blart, " Document Type
zfbdt LIKE bsik-zfbdt, " Base Line Date
zbd1t LIKE bsik-zbd1t, " Due date1
zbd2t LIKE bsik-zbd2t, " Due Date2
zbd3t LIKE bsik-zbd3t, " Due Date3
waers LIKE bsik-waers, " Currency
dmbtr LIKE bsik-dmbtr, " Amount in Local Curr
END OF int_bsik.
Internal Table for Amounts Sum Up Data
DATA: BEGIN OF int_final OCCURS 0,
lifnr LIKE bsik-lifnr, " Vendor Number
name1 LIKE lfa1-name1, " Vendor Name
total1 LIKE bsik-dmbtr, " Amount in Local Curr
total2 LIKE bsik-dmbtr, " Amount in Local Curr
total3 LIKE bsik-dmbtr, " Amount in Local Curr
total4 LIKE bsik-dmbtr, " Amount in Local Curr
total5 LIKE bsik-dmbtr, " Amount in Local Curr
total6 LIKE bsik-dmbtr, " Amount in Local Curr
total LIKE bsik-dmbtr, " Amount in Local Curr
END OF int_final.
D A T A D E C L A R A T I O N S
DATA : v_flag, " Flag
v_gtotal1 LIKE bsik-dmbtr, " Amount Totals
v_gtotal2 LIKE bsik-dmbtr, " Amount Totals
v_gtotal3 LIKE bsik-dmbtr, " Amount Totals
v_gtotal4 LIKE bsik-dmbtr, " Amount Totals
v_gtotal5 LIKE bsik-dmbtr, " Amount Totals
v_gtotal6 LIKE bsik-dmbtr, " Amount Totals
v_gtotal LIKE bsik-dmbtr, " Amount Totals
v_subtotal1 LIKE bsik-dmbtr, " Amount Totals
v_subtotal2 LIKE bsik-dmbtr, " Amount Totals
v_subtotal3 LIKE bsik-dmbtr, " Amount Totals
v_subtotal4 LIKE bsik-dmbtr, " Amount Totals
v_subtotal5 LIKE bsik-dmbtr, " Amount Totals
v_subtotal6 LIKE bsik-dmbtr, " Amount Totals
v_subtotal LIKE bsik-dmbtr, " Amount Totals
v_date LIKE bsik-zfbdt, " Due Date
v_tage1(4), " Age 30 days
v_tage2(4), " Age 60 days
v_tage3(4), " Age 90 days
v_fir(15), " Column Text1
v_sec(15), " Column Text2
v_thir(15), " Column Text3
v_four(17), " Column Text4
v_fidd(4), " Days field1
v_sedd(4), " Days field2
v_thdd(4), " Days field3
v_fodd(4), " Days field4
v_str TYPE SY-LISEL, " String
v_str1(11), " String
v_tage(3), " String
v_date1(10). " Date field
R A N G E D E C L A R A T I O N S
RANGES: r_date1 FOR bsik-zfbdt, " Date Range 1
r_date2 FOR bsik-zfbdt, " Date Range 2
r_date3 FOR bsik-zfbdt, " Date Range 3
r_date4 FOR bsik-zfbdt. " Date Range 4
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-001.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr. "Vendor account
PARAMETERS: p_bukrs LIKE t001-bukrs. "Co. Code
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.
"Open items at key date
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',
p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',
p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',
p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.
SELECTION-SCREEN END OF BLOCK b3.
A T S E L E C T I O N S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_flds.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P O F P A G E
Header
TOP-OF-PAGE.
PERFORM header.
E N D O F P A G E
Footer
END-OF-PAGE.
ULINE.
T O P O F P A G E D U R I N G L I N E S E L E C T I O N *
Top of Page in Secondary List
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM header1.
A T L I N E S E L E C T I O N *
AT LINE-SELECTION.
Perform Line Selections
PERFORM line_selection.
E N D O F S E L E C T I O N
END-OF-SELECTION.
List generation
PERFORM basic_list.
*& Form validate_flds
Validation of Selection Screen fields
FORM validate_flds .
Validate Vendor Code
CLEAR lfa1-lifnr.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Vendor Code range'(023).
ENDIF.
Validate Company Code
CLEAR t001-bukrs.
SELECT bukrs UP TO 1 ROWS
INTO t001-bukrs
FROM t001
WHERE bukrs = p_bukrs AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e021. " Invalid Company Code range
ENDIF.
IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR
( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 1 greater'(004)
'than Column# 2 or 3 or 4'(005).
ENDIF.
*column 2
IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 2 greater'(006)
'than Column# 3 or 4'(007).
ENDIF.
*column3
IF ( p_tage3 > p_tage4 ).
MESSAGE e999 WITH 'Column 3 greater'(008)
'than Column#4'(009).
ENDIF.
ENDFORM. " validate_flds
*& Form fetch_data
Fetching Data from Database Tables
FORM fetch_data .
Date Range Population
r_date1-sign = 'I'.
r_date1-option = 'BT'.
r_date1-low = p_allgst.
r_date1-high = r_date1-low + p_tage1.
APPEND r_date1.
r_date2-sign = 'I'.
r_date2-option = 'BT'.
r_date2-low = r_date1-high + 1.
r_date2-high = r_date1-low + p_tage2.
APPEND r_date2.
r_date3-sign = 'I'.
r_date3-option = 'BT'.
r_date3-low = r_date2-high + 1.
r_date3-high = r_date1-low + p_tage3.
APPEND r_date3.
r_date4-sign = 'I'.
r_date4-option = 'BT'.
r_date4-low = r_date3-high + 1.
r_date4-high = r_date1-low + p_tage4.
APPEND r_date4.
Select the Vendor Open Items data from BSIK
SELECT l~lifnr
l1~name1
b~waers
b~dmbtr
b~zfbdt
b~zbd1t
b~zbd2t
b~zbd3t
b~belnr
b~xblnr
b~shkzg
b~blart
INTO CORRESPONDING FIELDS OF TABLE int_bsik
FROM lfb1 AS l INNER JOIN lfa1 AS l1
ON llifnr = l1lifnr
INNER JOIN bsik AS b
ON llifnr = blifnr AND
lbukrs = bbukrs
WHERE l~lifnr IN s_lifnr AND
l~bukrs = p_bukrs and
b~zfbdt le p_allgst.
IF SY-SUBRC 0.
MESSAGE i000 WITH 'No Data found'(027).
ENDIF.
Removing the date limit to get the due items in the past
DELETE int_bsik WHERE
( blart NE 'RE' AND blart NE 'KR' ) OR
shkzg NE 'H'.
SORT int_bsik BY lifnr.
ENDFORM. " fetch_data
*& Form header
Display the Report Columns
FORM header .
v_tage1 = p_tage1 + 1.
v_tage2 = p_tage2 + 1.
v_tage3 = p_tage3 + 1.
v_fidd = p_tage1.
v_sedd = p_tage2.
v_thdd = p_tage3.
v_fodd = p_tage4.
MOVE v_fodd0(4) TO v_fodd1(3).
v_fodd+0(1) = space.
CONCATENATE '1 to'(010) v_fidd INTO v_fir.
CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.
CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.
CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Summary of Ageing Analysis for Vendor Open Invoices as on'(013)
v_date1 into v_str separated by space.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = 'Saudi International Petrochemical Company'(012)
title2 = v_str.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
FORMAT COLOR 1 INTENSIFIED.
WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,
50(101) 'Invoices Due For(In Days)'(014) CENTERED,
151 sy-vline, 168 sy-vline .
WRITE :/1 sy-vline, 2(11) 'Vendor#'(015) CENTERED,
13 sy-vline ,14(35) 'Vendor Name'(016) CENTERED,
49 sy-vline,
50(101) sy-uline,151 sy-vline,
152(16) 'Total'(017) CENTERED,
168 sy-vline.
WRITE : /1 sy-vline,13 sy-vline, 49 sy-vline,
50(16) v_fir CENTERED, 66 sy-vline,
67(16) v_sec CENTERED, 83 sy-vline,
84(16) v_thir CENTERED, 100 sy-vline,
101(16) v_four CENTERED, 117 sy-vline,
118(16) v_str1 centered, 134 sy-vline,
135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,
168 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
ENDFORM. " header
*& Form basic_list
Display the Basic List
FORM basic_list .
NEW-PAGE LINE-SIZE 168.
LOOP AT int_bsik.
CLEAR v_date.
IF int_bsik-zbd3t ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd3t.
ELSE.
IF int_bsik-zbd2t ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd2t.
ELSE.
v_date = int_bsik-zfbdt + int_bsik-zbd1t.
ENDIF.
ENDIF.
IF int_bsik-zbd1t = ' '.
v_date = int_bsik-zfbdt.
ENDIF.
IF v_date IN r_date1.
int_final-total1 = int_final-total1 + int_bsik-dmbtr.
ELSEIF v_date IN r_date2.
int_final-total2 = int_final-total2 + int_bsik-dmbtr.
ELSEIF v_date IN r_date3.
int_final-total3 = int_final-total3 + int_bsik-dmbtr.
ELSEIF v_date IN r_date4.
int_final-total4 = int_final-total4 + int_bsik-dmbtr.
ELSEif v_date > r_date4-high.
int_final-total5 = int_final-total5 + int_bsik-dmbtr.
ELSEif v_date < p_allgst.
int_final-total6 = int_final-total6 + int_bsik-dmbtr.
ENDIF.
AT END OF lifnr.
v_flag = 1.
ENDAT.
IF v_flag = 1.
int_final-lifnr = int_bsik-lifnr.
int_final-name1 = int_bsik-name1.
int_final-total = int_final-total1 + int_final-total2 +
int_final-total3 + int_final-total4 + int_final-total5 +
int_final-total6.
APPEND int_final.
v_gtotal1 = v_gtotal1 + int_final-total1.
v_gtotal2 = v_gtotal2 + int_final-total2.
v_gtotal3 = v_gtotal3 + int_final-total3.
v_gtotal4 = v_gtotal4 + int_final-total4.
v_gtotal5 = v_gtotal5 + int_final-total5.
v_gtotal6 = v_gtotal6 + int_final-total6.
v_gtotal = v_gtotal + int_final-total.
WRITE: /1 sy-vline,
2 int_final-lifnr COLOR 4 INTENSIFIED ON,
13 sy-vline,
14 int_final-name1 COLOR 4 INTENSIFIED ON,
49 sy-vline.
DATA : v_rem.
v_rem = sy-tabix MOD 2.
IF v_rem NE 0.
FORMAT COLOR 2 INTENSIFIED.
WRITE : 50 int_final-total1 CURRENCY int_bsik-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsik-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsik-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsik-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsik-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsik-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsik-waers,
168 sy-vline.
ELSE.
WRITE : 50 int_final-total1 CURRENCY int_bsik-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsik-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsik-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsik-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsik-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsik-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsik-waers,
168 sy-vline.
ENDIF.
FORMAT COLOR OFF.
HIDE int_final.
CLEAR int_final.
v_flag = 0.
ENDIF.
AT LAST.
WRITE : /1(168) sy-uline.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline, 2(47) 'GRAND TOTAL'(022) CENTERED,
49 sy-vline, 50 v_gtotal1 CURRENCY int_bsik-waers,
66 sy-vline, 67 v_gtotal2 CURRENCY int_bsik-waers,
83 sy-vline, 84 v_gtotal3 CURRENCY int_bsik-waers,
100 sy-vline,101 v_gtotal4 CURRENCY int_bsik-waers,
117 sy-vline,118 v_gtotal5 CURRENCY int_bsik-waers,
134 sy-vline,135 v_gtotal6 CURRENCY int_bsik-waers,
151 sy-vline,152 v_gtotal CURRENCY int_bsik-waers,
168 sy-vline.
HIDE : v_gtotal1,
v_gtotal2,
v_gtotal3,
v_gtotal4,
v_gtotal5,
v_gtotal6,
v_gtotal.
ENDAT.
FORMAT COLOR OFF.
ENDLOOP.
WRITE : /1(168) sy-uline.
ENDFORM. " basic_list
*& Form line_selection
When double clicked on the line display the seconday list
FORM line_selection .
NEW-PAGE LINE-SIZE 206.
Sy-lsind = 1.
DATA : v_rem,v_cnt LIKE sy-tabix.
v_cnt = 0.
SORT int_bsik BY belnr zfbdt.
LOOP AT int_bsik WHERE lifnr EQ int_final-lifnr.
v_rem = v_cnt MOD 2.
CLEAR v_date.
IF int_bsik-zbd3t ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd3t.
ELSE.
IF int_bsik-zbd2t ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd2t.
ELSE.
v_date = int_bsik-zfbdt + int_bsik-zbd1t.
ENDIF.
ENDIF.
IF int_bsik-zbd1t = ' '.
v_date = int_bsik-zfbdt.
ENDIF.
IF v_rem NE 0.
format color 2 intensified.
WRITE :/1 sy-vline, 2 int_bsik-belnr,
12 sy-vline,13 int_bsik-lifnr,
23 sy-vline,24 int_bsik-name1,
59 sy-vline,60 int_bsik-xblnr,
76 sy-vline,77 int_bsik-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline, 189 sy-vline,
190 int_bsik-dmbtr CURRENCY int_bsik-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsik-dmbtr.
WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsik-dmbtr.
WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsik-dmbtr.
WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsik-dmbtr.
WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsik-dmbtr.
WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsik-dmbtr.
WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.
ENDIF.
format color off.
ELSE.
WRITE :/1 sy-vline, 2 int_bsik-belnr,
12 sy-vline,13 int_bsik-lifnr,
23 sy-vline,24 int_bsik-name1,
59 sy-vline,60 int_bsik-xblnr,
76 sy-vline,77 int_bsik-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline,189 sy-vline,
190 int_bsik-dmbtr CURRENCY int_bsik-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsik-dmbtr.
WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsik-dmbtr.
WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsik-dmbtr.
WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsik-dmbtr.
WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsik-dmbtr.
WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsik-dmbtr.
WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.
ENDIF.
ENDIF.
FORMAT COLOR OFF.
v_cnt = v_cnt + 1.
ENDLOOP.
WRITE : /1(206) sy-uline.
v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3
+ v_subtotal4 + v_subtotal5 + v_subtotal6.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline,
2(85) 'Total'(017) CENTERED CURRENCY int_bsik-waers ,
87 sy-vline,
88 v_subtotal1 CURRENCY int_bsik-waers,
104 sy-vline,
105 v_subtotal2 CURRENCY int_bsik-waers,
121 sy-vline,
122 v_subtotal3 CURRENCY int_bsik-waers,
138 sy-vline,
139 v_subtotal4 CURRENCY int_bsik-waers,
155 sy-vline,
156 v_subtotal5 CURRENCY int_bsik-waers,
172 sy-vline,
173 v_subtotal6 CURRENCY int_bsik-waers,
189 sy-vline,
190 v_subtotal CURRENCY int_bsik-waers,
206 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(206) sy-uline.
CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,
v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,
v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.
ENDFORM. " line_selection
*& Form header1
Secondary List Header
FORM header1 .
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Details of Ageing Analysis for Vendor Open Invoices as on'(024)
v_date1 into v_str separated by space.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = 'Saudi International Petrochemical Company'(012)
title2 = v_str.
FORMAT COLOR 1 intensified.
WRITE :/1(206) sy-uline.
WRITE :/1 sy-vline,12 sy-vline ,
23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,
88(101) 'Invoices Due For(In Days)'(014) CENTERED,
189 sy-vline,206 sy-vline.
WRITE : /1 sy-vline, 2(10) 'Doc Number'(021) CENTERED,
12 sy-vline, 13(10) 'Vendor#'(015) CENTERED,
23 sy-vline, 24(35) 'Vendor Name'(016) CENTERED,
59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,
76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,
87 sy-vline, 88(101) sy-uline,
189 sy-vline,190(16) 'Total'(017) CENTERED,
206 sy-vline.
WRITE : /1 sy-vline, 12 sy-vline,
23 sy-vline,59 sy-vline,
76 sy-vline,87 sy-vline,
88(16) v_fir CENTERED, 104 sy-vline,
105(16) v_sec CENTERED, 121 sy-vline,
122(16) v_thir CENTERED, 138 sy-vline,
139(16) v_four CENTERED, 155 sy-vline,
156(16) v_str1 CENTERED,
172 sy-vline,
173(16) 'Already Overdue'(018) CENTERED,
189 sy-vline,
206 sy-vline.
format color off.
WRITE : /1(206) sy-uline.
ENDFORM. " header1
The below link will give Tables & Relations.
http://www.erpgenie.com/abap/tables.htm
http://goldenink.com/abap/files_in_sap.html
http://abap4.tripod.com/SAP_Tables.html
http://www.geocities.com/sapcircle/Relations.pdf
regards,
indranil -
SRM Global Spend Analysis Report
Hi Team,
Does anyone have any prior experience creating SRM Global Spend Analysis Report in BI 7.0.
I couldnt find the data source in SRM for Global Spend report, but I have the Infoobjects and cube from BI Content. Can anyone provide a step by step instruction on how to create this report in BI. Do I need to create Custom Datasources?
I am using SRM 5.0 and BI 7.0 with support pack 10.
Thanks
Anita.Hi
I don't think you need to create custom datasource, as all the information is available in the system.
I have not tried this ever. Here are few details, which might help.
<b>Global Spend Analysis</b>
<u>Accurate spend information helps you to optimize your supply base and, by indicating potential for demand aggregation across business units, enables you to control your procurement cost and negotiate better contracts with your suppliers. Global Spend Analysis now uses mapping information provided by SAP Content Integrator. The category mapping functions of SAP Content Integrator allow you to map products and categories to a standard category hierarchy (or schema). This could be an internal customer-defined schema or an external one, such as eCl@ss or UN/SPSC. Grouped key mapping for partner data delivers information on identical suppliers, which appear under separate IDs in the procurement systems. Both kinds of key mapping information are made available to SAP BW. The consolidated InfoObject technology in SAP BW then enables unified reporting across diverse master data entities in a heterogeneous system landscape, based on the mapping information delivered by the SAP Content Integrator. For mySAP SRM 3.0, the data extraction tools of MDM, which feed the master data into SAP Content Integrator, only support SAP R/3 systems. Therefore, the global spend scenario in combination with SAP Content Integrator only provides an out-of-the-box solution for mySAP SRMs classic scenario.</u>
<i>Refer to few links as well.</i>
<b>http://help.sap.com/saphelp_srm50/helpdata/en/6d/0f343e47fd6b2ee10000000a114084/frameset.htm
http://help.sap.com/saphelp_srm50/helpdata/en/3c/014b03cc304d2ea89d4540dc98b6e3/frameset.htm
http://help.sap.com/saphelp_srm50/helpdata/en/99/4dded1f9e1433a88bd510e631ee335/frameset.htm
http://help.sap.com/saphelp_srm50/helpdata/en/4d/fa243dfe075c59e10000000a114084/frameset.htm</b>
<u>Refer to few OSS notes as well.</u>
<b>956062 SRM 3.0 SP 11 (Stack 07/2006): Release and Information Note
759396 No totals display in report 0SR_FIC01_Q0009
751772 New roles for the purchase analysis as of BI Cont 3.5.2
649491 New roles for BW content for SRM as of BW 3.0B
87080 COMPUTE_INT_PLUS_OVERFLOW in report RSTABL10
624726</b>
Hope this will help.
Please reward full points, incase it suits your requirements.
Regards
- Atul -
IMAQ Particle Analysis Reports VI
Hello,
I have written a programme that can take an image, resize it, theshold it and generate an array of particle locations using the IMAQ particle analysis VI. The programme works fine but I was wondering if anyone can answer some questions I have regarding some of the details of how this VI works:
How does the IMAQ Particle Analysis Reports VI calculate the centre of mass of the particles? Naively I would assume it would be the same as the IMAQ Centroid VI which uses the formula x=Sum(x*PixelValue)/Sum(PixelValue), y=Sum(y*PixelValue)/Sum(PixelValue), however in this case it finds the centre of mass of the entire image and not of the individual particles. Does it therefore apply these formulas to automated regions of interest to generate the list of centroided coodinates for each particle or does it use an altogether different method?
Is this the fastest and most computationally efficient way to generate these list of centroided coodinates given that it also calculates several other parameters that I do not need?
Thanks so much! Any help would be greatly appreciated!
JustinHi Justin,
I haven't been able to obtain the formula / algorithm that the VI uses but I found that the particle analysis example in CVI offers some insight into what the function is performing. I've copied the C code for your convience but I found it on this white paper http://www.ni.com/example/26517/en/ -
Particle Analysis Examples.
int CVICALLBACK ParticleAnalysis (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
switch (event)
case EVENT_COMMIT:
/* Make sure the user has thresholded the image */
if(!thresholdFlag) {
MessagePopup ("Image must be thresholded",
"You must threshold an image before performing the particle analysis.");
return 0;
/* This section of our code shows how to run a basic particle analysis.
imaqGetParticleInfo is used with the parameter IMAQ_BASIC_INFO to get
basic information on each particle in the image. It returns a pointer
to a structure array which contains all of the information for each
particle. Passing IMAQ_ALL_INFO instead of IMAQ_BASIC_INFO will run
a more detailed report on the particles, but will take longer to execute.
For more information on the report structure, see vision.h or the function
panel for imaqGetParticleInfo. */
/* Reset the max value for the control to (2^32)-1 so that consecutive runs
are not limited by the number of objects found in previous runs */
SetCtrlAttribute (panelHandle, PANEL_CURRENT_PARTICLE, ATTR_MAX_VALUE,
4294967295);
/* If we have already called imaqGetParticleInfo and thus created a particle report
we should dispose that report before creating a new one. */
if (particleRptExists)
imaqDispose (particleRpt_Ptr);
particleRpt_Ptr = imaqGetParticleInfo (thresholdImage, FALSE, IMAQ_BASIC_INFO, &particleCount);
particleRptExists = TRUE;
/* Simple user interface management - activate the particle report controls */
SetCtrlAttribute (panelHandle, PANEL_PARTICLE_COUNT, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_CURRENT_PARTICLE, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_AREA, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_CAL_AREA, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_TOP, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_HEIGHT, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_LEFT, ATTR_DIMMED,
FALSE);
SetCtrlAttribute (panelHandle, PANEL_WIDTH, ATTR_DIMMED,
FALSE);
SetCtrlVal (panelHandle, PANEL_PARTICLE_COUNT, particleCount);
/* Set the max value on the index control so that the user does
not try to access particle info for particles that do not exist */
SetCtrlAttribute (panelHandle, PANEL_CURRENT_PARTICLE, ATTR_MAX_VALUE,
particleCount - 1);
/* Simulate an event to immediately update report controls and reset the
report index to zero */
ViewReport (panelHandle, 0,EVENT_COMMIT,NULL,0,0);
SetCtrlVal (panelHandle, PANEL_CURRENT_PARTICLE, 0);
break;
return 0;
Kind Regards,
Lucas
Applications Engineer
National Instruments -
Sales and Purchase Analysis reports by Item
The current functionality of these reports is more like an open items list rather than an analysis report.
If you Run a Purchase Analysis report by Item with a secondary selection of Supplier, and choose GRPO - the scenario is to find out how many of which products you have received in the date range from a specific supplier. This type on data is useful to use for negotiations on pricing etc.
Currently, the report will only display values for GRPO that have not been drawn to AP Invoice. This is supposedly system functionality, but, the report is called analysis, so should provide data for that purpose?Hi,
You may double click the column header to change the sort.
Thanks,
Gordon -
Accounts rceievable analysis report with VAT inclusion
Hi All,
I have been asked to include the VAT amount paid by each customer in the Accounts recievable and payable analysis report.
The problem is posting for VAT goes to General Ledger and the total amount is posted to Customer.
The report currently in BW doesnt give the split of the amount for a customer.
We have a cube which stores all the FI-AR line items and we have a ODS which stores GL line items.
The GL line item ODS obiviously doesnt have customer number.
I tried creating a multiprovider on the FI-AR cube and GL ODS but didnt get the expected result.
Can anyone please suggest on how to approach this problem.
Points will be rewarded..
Thanks
SundarUpdate:
Within the \config\xml\migration-config_PreMigrationAnalysis.xml configuration file you can control the buffering of records. I changed the buffer size from 15000 to 10 and now any object type with count over 10 fails on the 11th object of that type.
Next step: Check the behaviour of the other configurations.
<!-- List of source controller properties.-->
<properties>
<!-- List of Connection properties to connect to the OW instance.-->
<property name="url" value="http://qat.idm.com"/>
<property name="username" value="idm-config"/>
<!-- This property specifies the location of the individual OW object reports.-->
<property name="objectReportDirLocation" value="./reports"/>
<!-- This property specifies the maximum number of records that shall be displayed in an individual OW object report.-->
<property name="reportRecordsLimit" value="15"/>
<!-- This property controls the creation of a local login to OW. Allowed Values are true/false.-->
<property name="requireLocalSession" value="false"/>
<!-- This property controls the buffering of OW object queries. Allowed Values are true/false.-->
<property name="bufferQuery" value="true"/>
<!-- This property controls the buffer size of OW object queries.-->
<property name="bufferSize" value="10"/>
</properties> -
Sales Analysis report does not match Cost of Sales Account
My client is running SAP B1 8.81 PL 6. He has set all items to standard costing method. He has discovered that the difference between the Sales Amount and the Gross Profit amount on the Sales Analysis report, which should equal the Cost of Sales for the Items, does not match the Cost of Sales G/L account on the P&L report. If you look at a sample of rows, the above difference divided by the quantity equals the standard cost of the item. There are no manual journal entries that affect the COS account for the posting period that is being analyzed. I cannot see any mathmatical difference or problem with the above analysis, nor can I find the problem. There is about an $85K difference between the reports. The Sales Amount on the Sales Analysis report matches the revenue account on the P&L to the penny. Has anyone ever compared these 2 reports? Thank you for your help.
Bill TurekIf you right click on an Invoice and choose "Gross Profit" it will give you a setting on how you want to calculate the Gross Profit for that invoice.
In the accounting point of view the "Base Price" should be "Item Cost" so that the Gross Profit will be (Net Selling Price - Item Cost = Gross Profit). This will give you the same Gross Profit amount between P and L and Sales Analysis Report.
However, SAP B1 gives the user the ability to select a different base price other than the Item Cost.
This gives the user the flexibility for the Sales Report. Example (Net Sales Price - Vendor Sales Price = Gross Profit). People do this sometimes because the item's cost fluctuates if you use FIFO or average cost and they want a uniform cost to calculate their Gross Profit.
In summary if the Base Price is not set to "Item Cost" then there will be difference in the Gross Profit between the P and L and Sales Analysis Report.
See screenshot:
-Eric Alo-
B1 Financial Consultant -
Web Analysis Report Migration from 9.3.1. to 11.1.1.3
Hi All,
We are migrating from 9.3.1 to 11.1.1.3 we have couple of web analysis reports running on the old server 9.3.1 and now i have to migrate those reports on the new server 11.1.1.3. Reports in 9.3.1 are in windows servers and it should me migrated to 11.1.1.3 which is on a solaris server. please let me me know if you have any ideas regarding this issue.
Thanks,
Ram.
Edited by: KRK on Sep 29, 2009 8:56 AM
Edited by: KRK on Nov 6, 2009 12:53 PMHi Vijay,
I have checked migration utility inversion 9.x basically this migration utility is compatible for reports from version 7.x to 9.x and it is not supported for reports from 9.x to 11.x ....
So i have finally fallowed a procedure.
I have exported the reports from 9.x and imported in 11.x .
Then after exporting i have pointed database connections to new 11.x version server.
Now I was facing a issue when i open a reports in read only mode (i.e as a business user) iam getting a screen where it asks for database details ( I have assigned business user read access to essbase)
Basically this reports are pointing to my old essbase server i.e version 9.x server.
Please let me if iam missing something while exporting and importing reports.
Thanks,
Ram. -
Not able to open web analysis reports after upgradation
we have upgraded Hyperion 11.1.1.3 to 11.1.2.2 version, after this process we are not able to open web analysis reports
These reports are still pointing to old servers so, how to edit this database connection details in the new version??
Edited by: 1007326 on May 22, 2013 3:29 AMHi,
Welcome to Forums...!
I think we need to change the database connection details in the Web analysis.
goto file --> Edit --> browse the database connection then change the server name in the connection details.
may be this will help to resolve your issue.
Thanks,
mady -
How to Set up the User POV in Web Analysis report
Hi , I am new to create the Hyperion Web Analysis report.
I am trying to set up the user POV. I have followed the document and did the below steps.
1. I went to User preference -> OLAP Server -->checked the BOX "Save Filters only for POV".
2. selected the layout and in options checked the Use user POV.
after that I have opened the report in HTML. nothing got prompted.
When I opened the Financial report, It will prompt user to select the year, period, entity, etc... I need the same way in Web Analysis also.
I have selected Accounts in rows, Entity, Year, Period in columns , rest all i kept in Filters.
Could some one please help me how user can get prompted to select the members from dimensions.
ThanksWhat you have in Webanalysis is POV and PV
Applying Point of View (POV)
Selecting Personal Variables
You can also look at Oracle - Hyperion Labs......: WebAnalysis - how to show the current user's report when he logs in to see how PV can be leveraged.
There is no prompt option in WebAnalysis
Regards
Celvin
http://www.orahyplabs.com -
Drill Down and Drill UP on Web Analysis Report
Hi all,
I have a question regarding Drill down and Drill up on Web Analysis Report.
The situation is the following:
I've created a report with some account parent elements in row. The dimension account has a multiple hierarchy.
I need to drill down on the child of these elements keeping the parente on top and so i've selected the option "Selected Member First".
The drill down it's ok for the first drill to go on the next level but when i drill down once more to go on the next level of the selected member hierarchy the drill move this level out hierarchy.
Can someone help me on this point?
After that i've drilled just to the last level when i drill up on these elements to return on the previous level i note that in the report happens a strange thing:
The Drill Up works fine but on the report appears another elements which is the same parent with anothe code/alias of another hierarchy instead of the Selected member.
On this i've noted tha this 2 different parente have the same elements...I think that the children of the selected memeber can be shared members....Can be this the problem?
Thanks for the help.
Best Regards
Eugenio GualtieriHi John,
thanks for your answer.
I've trayed to set the report on Smart View to virify tou test your advise.
The situatio is the following:
IS05101010-PUBBLICITA'
702000 - VEND. DI SPAZIO PUBBLICITARIO
702010 - RETTIFICHE VENDITE SPAZIO PUBBLICITARIO
W10004 - RICAVI PUBBL ICITA' ATTIVA (Q.EDIT) INTE
W10007 - RICAVI DA SPAZIO PUBBL. INTERASA
W10029 - RETTIFICA RICAVI PUBBL. INTERASA
ED05101010-PUBBLICITA'
702000 - VEND. DI SPAZIO PUBBLICITARIO
702010 - RETTIFICHE VENDITE SPAZIO PUBBLICITARIO
W10004 - RICAVI PUBBL ICITA' ATTIVA (Q.EDIT) INTE
W10007 - RICAVI DA SPAZIO PUBBL. INTERASA
W10029 - RETTIFICA RICAVI PUBBL. INTERASA
If I take only one parent member the drill up works fine but if i take all 2 memeber as above and i decide to drill up on one of the two element occur that the drill work for the two elements at the same time.
Afetr the drill in this case the situation is:
IS05101010-PUBBLICITA'
ED05101010-PUBBLICITA'
Can be a problem due to shared memebers?
Thanks for your help.
Regards
Eugenio Gualtieri -
Can we schedule web analysis report on workspace
I am working on Hyperion 9.2. i want to know that is it possible to schedule the Web Analysis reports on workspace?
There was a way to launch an Analyzer report to html using the command line. This could then be scheduled but they've removed the functionality in System 9. The really annoying thing is that they've actually left a lot of the code lying around that enabled you to launch using the command line.
As Sean says it's now not possible unfortunately. -
UCCX 8.5.1 SU2 traffic analysis report errors out
Anyone run into this before, I'm not seeing a bug fixed for this issue in SU3 either.
If we have a call center outage or some issue effecting services, one day a month, and try to run the IVR traffic analysis report for the whole month (where one day we had outage) the report for that timeframe fails to run. If we adjust the report begin/end time to end before problem day/hour the report runs fine. Same for after that time to end of the month. We can also run the report for the single day of outage (whole 24 hour period) without problem to which is strange.
Regarding the outage, it is where UCCX services stop for some reason. This is HA WAN setup. The systems were not powered down or shutdown unexpectedly.
Seems it is choking on the data and trying to divde by zero....
We see this in logs,
1: 11/6/2012 8:56:32 AM %CHC-LOG_SUBFAC-3-UNK:0 :Final Font Size=$rptFontSize
1: 12/6/2012 11:20:36 AM %CHC-LOG_SUBFAC-3-UNK:The following SQL Command failed due to ()SQL Command=[call sp_ivr_traffic_analysis ('2012-11-01 5:00:00', '2012-12-01 5:59:59', -18000, 0 )]
2: 12/6/2012 11:20:36 AM %CHC-LOG_SUBFAC-3-UNK:TraceDBError #1:(ADO Error# -2147467259|Description E22012: (-1202) An attempt was made to divide by zero.|Source Ifxoledbc|SQLState |NativeError -1202)
3: 12/6/2012 11:20:36 AM %CHC-LOG_SUBFAC-3-UNK:Database Error | A runtime error occurred while executing the query. Please check log for more details
4: 12/6/2012 11:30:32 AM %CHC-LOG_SUBFAC-3-UNK:Failed to run Interpreted SQL Command(call sp_ivr_traffic_analysis ('2012-11-01 5:00:00', '2012-12-01 5:59:59', -18000, 0 ))
5: 12/6/2012 11:34:52 AM %CHC-LOG_SUBFAC-3-UNK:The following SQL Command failed due to ()SQL Command=[call sp_ivr_traffic_analysis ('2012-11-01 5:00:00', '2012-12-01 5:59:59', -18000, 0 )]
6: 12/6/2012 11:34:52 AM %CHC-LOG_SUBFAC-3-UNK:TraceDBError #1:(ADO Error# -2147467259|Description E22012: (-1202) An attempt was made to divide by zero.|Source Ifxoledbc|SQLState |NativeError -1202)
7: 12/6/2012 11:34:52 AM %CHC-LOG_SUBFAC-3-UNK:Database Error | A runtime error occurred while executing the query. Please check log for more details
8: 12/6/2012 12:02:53 PM %CHC-LOG_SUBFAC-3-UNK:Failed to run Interpreted SQL Command(call sp_ivr_traffic_analysis ('2012-11-01 5:00:00', '2012-12-01 5:59:59', -18000, 0 ))
9: 12/6/2012 4:00:13 PM %CHC-LOG_SUBFAC-3-UNK:The following SQL Command failed due to ()SQL Command=[call sp_ivr_traffic_analysis ('2012-11-01 5:00:00', '2012-12-01 5:59:59', -18000, 0 )]
10: 12/6/2012 4:00:13 PM %CHC-LOG_SUBFAC-3-UNK:TraceDBError #1:(ADO Error# -2147467259|Description E22012: (-1202) An attempt was made to divide by zero.|Source Ifxoledbc|SQLState |NativeError -1202)
11: 12/6/2012 4:00:13 PM %CHC-LOG_SUBFAC-3-UNK:Database Error | A runtime error occurred while executing the query. Please check log for more details
12: 12/6/2012 4:18:56 PM %CHC-LOG_SUBFAC-3-UNK:Failed to run Interpreted SQL Command(call sp_ivr_traffic_analysis ('2012-11-01 5:00:00', '2012-12-01 5:59:59', -18000, 0 ))Mohammed,
It is common, in many of the Cisco Express 8.5 environments we have looked at, for the Total Incoming Calls given on a Traffic Analysis report to be a higher number than an Application Report.
The Traffic Analysis Report counts every unique sessionID (unique call) that is inbound (contact type of 1). The Application Reports do a similar thing but qualify (filter) only the records that have an application assigned.
There are simply times where inbound calls have been directed to an "agent" without having an applicaiton assigned.
The best thing the reporting user can do is to run a query on his or her database such as:
select * from ContactCallDetail where contactType=1and startDateTime > '2012-11-16 10:00:00' and startDateTime < '2012-11-16 11:00:00';
Usually when an application is not assigned to the record in the ContactCallDetail table it is because the destination type is equal to 1, which is an 'Agent' instead of a 'route point'.
So if you modify your select statement to filter by destinationType, you can quickly find the records that don't have the application assigned.
Example: select * from ContactCallDetail where contactType = 1 and destinationType = 1 and startDateTime > '2012-11-16 10:00:00 and startDateTime < 2012-11-16 11:00:00';
When you look at these records, you will see the agent that took the call from the destinationID field. The number in that field should match up with the field called 'resourceID' in a table called 'resouce';
Example: select * from resource where resouce=6011; where 6011 was the number you found in the destinationID field.
If there is still confusion about the source of the call - then talk to that agent and find out what is was.
Good Luck and let me know if you need further help.
Ron Reif
[email protected]
Maybe you are looking for
-
WRVS4400N Won't allow L2TP traffic to passthrough
The latest in a series of issues with the WRVS4400N: As any Mac user knows, you cannot connect to this device with QuickVPN, as there is no Mac version of QuickVPN. That leaves us with one of two options: 1) Obtain iPSecuritas and configure an IPSe
-
ITunes won't open after OS X reinstall.. Help!
I am selling my MacBook (upgraded to a MB Pro), so I wiped it and reinstalled OS X 10.5.8. I did all the software updates, and then tested a couple applications. When I tried to open iTunes, a message pops up that says: "iTunes requires QuickTime 7
-
Question about backing up the purchases
Hi Folks, I used the "File > Library > Back Up To Disc" option to back up my purchases. I just purchased another album. How can I back up that album to data disc through the same function without having to back up all purchases again? Thank you.
-
My phone won't update contacts
My iphone won't update my contacts. My ipad has more contacts than my iphone. They both are syncing and they both are backing up icloud. So what I am doing wrong. The iphone contacts under settings is on.
-
Hi, We have 5.3.1 running and we actually use Tidal Intelligent Reporting (remember that?). Anyhoo, TIR dies with Tidal6 and we have no plans to invest in JAWS as we already have a corporate reporting solution. Does anyone know he feasibility or port