Custom report getting looped in PBSDE.DEBUG_LOOP
We have developed an oracle report, using report builder and are running it from the report builder. This report is taking a very long time to complete.
On checking the session details and sql text, it is looping in the following statement,
PBSDE.DEBUG_LOOP
But, we have not enabled any debug. Kindly advice on why is this package executed automatically.
this is a standard packagea standard package of what software ? Its none of the standard oracle-db-packages.
For the usage. I guess you already searched the report itself? Other possibilities would be inside procedure/functions called from the report-triggers or procedure/functions called inside the queries or views in the report.
You could check DBA_DEPENDENCIES for usages of your package.
Similar Messages
-
Custom report instead of standard standard report "EAMWRREP" from OAF
Hi All,
I have a requirement to fire a custom report instead of standard standard report "EAMWRREP" from OAF.
Screen -> EAM Self Service Maintenance -> Work Orders -> Search Work Orders -> Print Work Order
Standard page ->WorkOrderRepPG 120.2
Standard Controller -> WorkOrderRepCO
I have extended the standard controller to override the call
as shown below :
Standard WorkOrderRepCO :
oapagecontext.putParameter("p_DataSourceCode", "EAMWRREP");
oapagecontext.putParameter("p_DataSourceAppsShortName", "EAM");
Extended :WorkOrderTestCO
oapagecontext.putParameter("p_DataSourceCode", "USS_EAM_WO_OAF");
oapagecontext.putParameter("p_DataSourceAppsShortName", "XP2P");
The custom report gets fired with header and footer but with NO DATA.
The custom report is a simple RDF+XML report (RDF data model + XML template)
with just query SELECT wip_entity_name from wip_entities where wip_entity_id = : WipEntityId
Can some one please let me know how to pass parameters to a report likne mine??
Regards,
Ambika RamachandranTry the OA Framework Forum
-
Custom Report Item CustomData evaluation problem in a subreport loop
Came across a strange problem with the custom report item CustomData property evaluation when using a sub report loop.
I have a master report, which contains a sub report component within a List. The List is bound to a dataset from which a numeric value is passed on to a sub report's report parameter, and from there further down as an argument to a sub report dataset. The sub
report contains our custom image CRI, which is bound to the said dataset. This dataset outputs a base64 encoded image data value, which the CRI then renders.
Now the problem is that only the first sub report iteration gets evaluated correctly, rest of them seem to get their CRI CustomData from the first iteration. So essentially the loop just outputs the same first sub report over and over again.
However, if I make the List component do a page break after each sub report, then all the sub reports start getting rendered correctly.
Here's how the CustomData gets initialized in the CRI designer class:
this.CustomData = new CustomData();
this.CustomData.DataRowHierarchy = newDataHierarchy();
this.CustomData.DataRowHierarchy.DataMembers.Add(newDataMember());
this.CustomData.DataRowHierarchy.DataMembers[0].Group = newGroup();
this.CustomData.DataRowHierarchy.DataMembers[0].Group.Name = this.Name + "_SingleGrouping";
this.CustomData.DataRowHierarchy.DataMembers[0].Group.GroupExpressions.Add(new ReportExpression());
this.CustomData.DataColumnHierarchy = new DataHierarchy();
this.CustomData.DataColumnHierarchy.DataMembers.Add(new DataMember());
DataRow row = new DataRow();
DataValue value = new DataValue();
value.Name = "Base64";
value.Value = "";
DataCell cell = new DataCell();
cell.Add(value);
row.Add(cell);
this.CustomData.DataRows.Add(row);
The CRI also exposes the CustomData's DataSetName and a Base64 property.
Has anyone else seen something like this happen? Not sure if this could be an issue with our CustomData configuration/usage, the API documentation is pretty much non-existent as usual. Seems more like bug to
me.
Leo Wartinen, Predisys Inc.Hi WarLe,
If I understand correctly, you are using a list control to contain the subreport in the master report. The dataset of the list contains the field which is passed as the parameter values of the subreport. When you render the report, only the first subreport
gets evaluated correctly, rest of them seem to get their CRI CustomData from the first iteration, right?
If in this scenario, it seems that you haven’t add a group in the list. We can try to add a group grouped on the field which is passed as the parameter values of the subreport to check the issue again. Besides, could you mind post the sample data for the
dataset of the list and tell us the settings for the list control? Then we can make further analysis.
If there are any misunderstanding, please elaborate the issue for further investigation.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Custom report to get MD04 but for n materials
Dear All...
Do you know if already exist a report that show same information than the MD04?
Is needed to put several material numbers and get the MD04 information to can do sorts, filters, download to excel.
Is like the MDLD transaction but instead to print it, have the ability to save it in a excel file.
The Idea is to have a customized report that can be run by 1 or more materials and show like a "photo" on how is MD04 now.
Have you a case like this?
How I can create that report?
Any idea?BAPI_MATERIAL_STOCK_REQ_LIST gives you all data of MD04.
MD_STOCK_REQUIREMENTS_LIST_API is a FM that is called inside BAPI_MATERIAL_STOCK_REQ_LIST and returns only details of a element (when you click magnifying glass icon in MD04).
You should test both FMs in SE37 transaction providing it a material and a plant(optional), and check what import data you need.
CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
EXPORTING
MATNR = p_matnr
WERKS = p_werks
IMPORTING
E_MT61D = wa_mt61d
E_MDKP =
E_CM61M =
E_MDSTA = wa_mdsta
E_ERGBZ =
TABLES
MDPSX =
MDEZX =
MDSUX =
EXCEPTIONS
MATERIAL_PLANT_NOT_FOUND = 1
PLANT_NOT_FOUND = 2
OTHERS = 3.
This is a little example of the FM call.
Note that function modules only receive a single material, so in your report you must call the function as many times as materials you have and store return items in internal tables before you display them. -
Consistently getting an error in custom reports "an error occurred" is the only msg displayed...my clients are screaming...what is the problem?
Hi,
Please log a ticket with BC support for this issue. Please provide the exact steps, preferably a video. You can log the ticket from your admin panel > help & support.
Kind Regards,
Aish -
In custom report, is it possible to get value of field only? No style info?
I need to build the following string in the results of a custom report:
http://my.domain.org/myapp?A1=<#ORACLE.FIELD#>
but when I run my report as a portlet, I get this instead, which leads to a "Page not Found" -
http://my.domain.org/myapp?A1=<FONT CLASS=PortletText1><STYLEINFO PortletText1>ORACLE FIELD VALUE</STYLEINFO>
When running my custom report as a portlet, is there a way to get the value of the field only, without the style info?
Thanks for an help offered....
Message was edited by:
I_LOVE_PORTAL
Message was edited by:
I_LOVE_PORTALHi
Feild status at entry time looks for the following combination
S- Supressed
D- Display
R- Required
O- Optional
System looks for this above combination at first in Posting Key and then in FSV of account which we enter. For this partical purpose the the feilds in posting key are kept optional.
Check the feild status of posting key & account T-code FBKP.
thanks
Colin Thomas -
Weu0092d like to get Custom reports. The base of reports is Security Audit Log
Wed like to get Custom reports. The base of reports is Security Audit Log files. This is files for SM20.
What does the file structure look like? What is field of it?
Thanks!Hello Marina
The data written to the security audit log correspond to the DDIC structures RSLGENTR (up to release 4.6) and RSAUENTR2 (in newer releases). DDIC structures can be viewed using TA SE11 (data type).
As I can see you have already opened a thread regarding this. Please don't duplicate the threads, as this only widespreads the information.
Regards,
Désiré -
Get Screen Resolution from Custom Reports
I was wondering if it was possible to get the screen resolution of a workstation from the Custom Reports in ZCC ??
SebOriginally Posted by sebastien
I was wondering if it was possible to get the screen resolution of a workstation from the Custom Reports in ZCC ??
Seb
Hi Seb
I'm out of the network so I can't double check this but I don't think Zen captures that information. If my memory serves it captures some PNP info from the screen like the manufacturer and product ID's.
It looks like you could pull the data from the registry.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardwa re Profiles\UnitedVideo\CONTROL\VIDEO\{EE167610-A476-4BE2-9CD6-C24D55DFF3B9}\0000
I think the challenge will be that this key will vary from system to system. And if you have multiple monitor setups you would want to collect both sets of data.
One way you could do this would be to deploy a bundle containing a small easily available executable called DumpEDID.exe (google it) This little command line utility does exactly what it says on the box. It reads the EDID data from the display and dumps the data back to the command shell.
Then all you need to do is to run a script to retrieve this output and load it into a custom made registry key. From there you can then pull the registry data into Zen and even create an ADF field for the info.
Hope this helps -
Custom Report taking more time to complete Normat
Hi All,
Custom report(Aging Report) in oracle is taking more time to complete Normal.
In one instance, the same report is taking 5 min and the other instance this is taking 40-50 min to complete.
We have enabled the trace and checked the trace file, but all the queries are working fine.
Could you please suggest me regarding this issue.
Thanks in advance!!TKPROF: Release 10.1.0.5.0 - Production on Tue Jun 5 10:49:32 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Sort options: prsela exeela fchela
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
Error in CREATE TABLE of EXPLAIN PLAN table: APPS.prof$plan_table
ORA-00922: missing or invalid option
parse error offset: 1049
EXPLAIN PLAN option disabled.
SELECT DISTINCT OU.ORGANIZATION_ID , OU.BUSINESS_GROUP_ID
FROM
HR_OPERATING_UNITS OU WHERE OU.SET_OF_BOOKS_ID =:B1
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.05 11 22 0 3
total 3 0.00 0.05 11 22 0 3
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173 (recursive depth: 1)
Rows Row Source Operation
3 HASH UNIQUE (cr=22 pr=11 pw=0 time=52023 us cost=10 size=66 card=1)
3 NESTED LOOPS (cr=22 pr=11 pw=0 time=61722 us)
3 NESTED LOOPS (cr=20 pr=11 pw=0 time=61672 us cost=9 size=66 card=1)
3 NESTED LOOPS (cr=18 pr=11 pw=0 time=61591 us cost=7 size=37 card=1)
3 NESTED LOOPS (cr=16 pr=11 pw=0 time=61531 us cost=7 size=30 card=1)
3 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=11 pr=9 pw=0 time=37751 us cost=6 size=22 card=1)
18 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK1 (cr=1 pr=1 pw=0 time=17135 us cost=1 size=0 card=18)(object id 43610)
3 TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS (cr=5 pr=2 pw=0 time=18820 us cost=1 size=8 card=1)
3 INDEX UNIQUE SCAN HR_ORGANIZATION_UNITS_PK (cr=2 pr=0 pw=0 time=26 us cost=0 size=0 card=1)(object id 43657)
3 INDEX UNIQUE SCAN HR_ALL_ORGANIZATION_UNTS_TL_PK (cr=2 pr=0 pw=0 time=32 us cost=0 size=7 card=1)(object id 44020)
3 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=52 us cost=1 size=0 card=1)(object id 330960)
3 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=2 pr=0 pw=0 time=26 us cost=2 size=29 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 11 0.01 0.05
asynch descriptor resize 2 0.00 0.00
INSERT INTO FND_LOG_MESSAGES ( ECID_ID, ECID_SEQ, CALLSTACK, ERRORSTACK,
MODULE, LOG_LEVEL, MESSAGE_TEXT, SESSION_ID, USER_ID, TIMESTAMP,
LOG_SEQUENCE, ENCODED, NODE, NODE_IP_ADDRESS, PROCESS_ID, JVM_ID, THREAD_ID,
AUDSID, DB_INSTANCE, TRANSACTION_CONTEXT_ID )
VALUES
( SYS_CONTEXT('USERENV', 'ECID_ID'), SYS_CONTEXT('USERENV', 'ECID_SEQ'),
:B16 , :B15 , SUBSTRB(:B14 ,1,255), :B13 , SUBSTRB(:B12 , 1, 4000), :B11 ,
NVL(:B10 , -1), SYSDATE, FND_LOG_MESSAGES_S.NEXTVAL, :B9 , SUBSTRB(:B8 ,1,
60), SUBSTRB(:B7 ,1,30), SUBSTRB(:B6 ,1,120), SUBSTRB(:B5 ,1,120),
SUBSTRB(:B4 ,1,120), :B3 , :B2 , :B1 ) RETURNING LOG_SEQUENCE INTO :O0
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 20 0.00 0.03 4 1 304 20
Fetch 0 0.00 0.00 0 0 0 0
total 21 0.00 0.03 4 1 304 20
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173 (recursive depth: 1)
Rows Row Source Operation
1 LOAD TABLE CONVENTIONAL (cr=1 pr=4 pw=0 time=36498 us)
1 SEQUENCE FND_LOG_MESSAGES_S (cr=0 pr=0 pw=0 time=24 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 4 0.01 0.03
SELECT MESSAGE_TEXT, MESSAGE_NUMBER, TYPE, FND_LOG_SEVERITY, CATEGORY,
SEVERITY
FROM
FND_NEW_MESSAGES M, FND_APPLICATION A WHERE :B3 = M.MESSAGE_NAME AND :B2 =
M.LANGUAGE_CODE AND :B1 = A.APPLICATION_SHORT_NAME AND M.APPLICATION_ID =
A.APPLICATION_ID
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.03 4 12 0 2
total 5 0.00 0.03 4 12 0 2
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173 (recursive depth: 1)
Rows Row Source Operation
1 NESTED LOOPS (cr=6 pr=2 pw=0 time=15724 us cost=3 size=134 card=1)
1 TABLE ACCESS BY INDEX ROWID FND_APPLICATION (cr=2 pr=0 pw=0 time=20 us cost=1 size=9 card=1)
1 INDEX UNIQUE SCAN FND_APPLICATION_U3 (cr=1 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 33993)
1 TABLE ACCESS BY INDEX ROWID FND_NEW_MESSAGES (cr=4 pr=2 pw=0 time=15693 us cost=2 size=125 card=1)
1 INDEX UNIQUE SCAN FND_NEW_MESSAGES_PK (cr=3 pr=1 pw=0 time=6386 us cost=1 size=0 card=1)(object id 34367)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 4 0.00 0.03
DELETE FROM MO_GLOB_ORG_ACCESS_TMP
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.02 3 4 4 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.02 3 4 4 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173 (recursive depth: 1)
Rows Row Source Operation
0 DELETE MO_GLOB_ORG_ACCESS_TMP (cr=4 pr=3 pw=0 time=29161 us)
1 TABLE ACCESS FULL MO_GLOB_ORG_ACCESS_TMP (cr=3 pr=2 pw=0 time=18165 us cost=2 size=13 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 3 0.01 0.02
SET TRANSACTION READ ONLY
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.01 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.01 0 0 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
begin Fnd_Concurrent.Init_Request; end;
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 148 0 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 148 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
log file sync 1 0.01 0.01
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
declare X0rv BOOLEAN; begin X0rv := FND_INSTALLATION.GET(:APPL_ID,
:DEP_APPL_ID, :STATUS, :INDUSTRY); :X0 := sys.diutil.bool_to_int(X0rv);
end;
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 9 0 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 9 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 8 0.00 0.00
SQL*Net message from client 8 0.00 0.00
begin fnd_global.bless_next_init('FND_PERMIT_0000');
fnd_global.initialize(:session_id, :user_id, :resp_id, :resp_appl_id,
:security_group_id, :site_id, :login_id, :conc_login_id, :prog_appl_id,
:conc_program_id, :conc_request_id, :conc_priority_request, :form_id,
:form_application_id, :conc_process_id, :conc_queue_id, :queue_appl_id,
:server_id); fnd_profile.put('ORG_ID', :org_id);
fnd_profile.put('MFG_ORGANIZATION_ID', :mfg_org_id);
fnd_profile.put('MFG_CHART_OF_ACCOUNTS_ID', :coa);
fnd_profile.put('APPS_MAINTENANCE_MODE', :amm); end;
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 8 0 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 8 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
SELECT FPI.STATUS, FPI.INDUSTRY, FPI.PRODUCT_VERSION, FOU.ORACLE_USERNAME,
FPI.TABLESPACE, FPI.INDEX_TABLESPACE, FPI.TEMPORARY_TABLESPACE,
FPI.SIZING_FACTOR
FROM
FND_PRODUCT_INSTALLATIONS FPI, FND_ORACLE_USERID FOU, FND_APPLICATION FA
WHERE FPI.APPLICATION_ID = FA.APPLICATION_ID AND FPI.ORACLE_ID =
FOU.ORACLE_ID AND FA.APPLICATION_SHORT_NAME = :B1
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 7 0 1
total 4 0.00 0.00 0 7 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 173 (recursive depth: 1)
Rows Row Source Operation
1 NESTED LOOPS (cr=7 pr=0 pw=0 time=89 us)
1 NESTED LOOPS (cr=6 pr=0 pw=0 time=93 us cost=4 size=76 card=1)
1 NESTED LOOPS (cr=5 pr=0 pw=0 time=77 us cost=3 size=67 card=1)
1 TABLE ACCESS BY INDEX ROWID FND_APPLICATION (cr=2 pr=0 pw=0 time=19 us cost=1 size=9 card=1)
1 INDEX UNIQUE SCAN FND_APPLICATION_U3 (cr=1 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 33993)
1 TABLE ACCESS BY INDEX ROWID FND_PRODUCT_INSTALLATIONS (cr=3 pr=0 pw=0 time=51 us cost=2 size=58 card=1)
1 INDEX RANGE SCAN FND_PRODUCT_INSTALLATIONS_PK (cr=2 pr=0 pw=0 time=27 us cost=1 size=0 card=1)(object id 22583)
1 INDEX UNIQUE SCAN FND_ORACLE_USERID_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=0 card=1)(object id 22597)
1 TABLE ACCESS BY INDEX ROWID FND_ORACLE_USERID (cr=1 pr=0 pw=0 time=7 us cost=1 size=9 card=1)
SELECT P.PID, P.SPID, AUDSID, PROCESS, SUBSTR(USERENV('LANGUAGE'), INSTR(
USERENV('LANGUAGE'), '.') + 1)
FROM
V$SESSION S, V$PROCESS P WHERE P.ADDR = S.PADDR AND S.AUDSID =
USERENV('SESSIONID')
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 0 0 1
total 3 0.00 0.00 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173 (recursive depth: 1)
Rows Row Source Operation
1 NESTED LOOPS (cr=0 pr=0 pw=0 time=1883 us cost=1 size=108 card=2)
1 HASH JOIN (cr=0 pr=0 pw=0 time=1869 us cost=1 size=100 card=2)
1 NESTED LOOPS (cr=0 pr=0 pw=0 time=1059 us cost=0 size=58 card=2)
182 FIXED TABLE FULL X$KSLWT (cr=0 pr=0 pw=0 time=285 us cost=0 size=1288 card=161)
1 FIXED TABLE FIXED INDEX X$KSUSE (ind:1) (cr=0 pr=0 pw=0 time=617 us cost=0 size=21 card=1)
181 FIXED TABLE FULL X$KSUPR (cr=0 pr=0 pw=0 time=187 us cost=0 size=10500 card=500)
1 FIXED TABLE FIXED INDEX X$KSLED (ind:2) (cr=0 pr=0 pw=0 time=4 us cost=0 size=4 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
asynch descriptor resize 2 0.00 0.00
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 6 0.00 0.00 0 0 0 0
Execute 6 0.01 0.02 0 165 0 4
Fetch 1 0.00 0.00 0 0 0 1
total 13 0.01 0.02 0 165 0 5
Misses in library cache during parse: 0
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 37 0.00 0.00
SQL*Net message from client 37 1.21 2.19
log file sync 1 0.01 0.01
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 49 0.00 0.00 0 0 0 0
Execute 89 0.01 0.07 7 38 336 24
Fetch 29 0.00 0.09 15 168 0 27
total 167 0.02 0.16 22 206 336 51
Misses in library cache during parse: 3
Misses in library cache during execute: 1
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
asynch descriptor resize 6 0.00 0.00
db file sequential read 22 0.01 0.14
48 user SQL statements in session.
1 internal SQL statements in session.
49 SQL statements in session.
0 statements EXPLAINed in this session.
Trace file compatibility: 10.01.00
Sort options: prsela exeela fchela
1 session in tracefile.
48 user SQL statements in trace file.
1 internal SQL statements in trace file.
49 SQL statements in trace file.
48 unique SQL statements in trace file.
928 lines in trace file.
1338833753 elapsed seconds in trace file. -
How to Created custom report for Ship not Billed (SD/FI)?
Hi all,
I am anticipating to write some abap reports..Here is one of them..
Anyone can help me with writing a Report , how to do 'Custom Report for shipped not Billed(SD/FI)' ..But since I am new to Abap , if you wish to reply, please use a little more detail and simple explanation, step by step so I can understand what is the idea, how it can be acheived...what kind of report should be used , techniques, tables etc...:)
Appreciate your help!
Regards,
BobyHi Boby,
You need to create custom transaction to achive these results.
you will have selection-screen ,it would be :
Date : Here date would be mandatory - Ranges Option
Customer - Optional field - Ranges
Order # Sales Order (Optional) Ranges
Invoice # - Invoice # (Optional) Ranges
You will get the data based on ur selection-screen criteria ...
First you will have customer order details from diffrent table
VBAK,
VBAP,
LIKP
LIPS
VBRK,
VBRP
KNA1,
VBFA Tables ( See the my sample program )
Output would be :
Customer # Custome Name Order # Delivery # Invoice # Netpr, Netquantity ,
Check the condition whether invoice table has VBRK-RFBSK = ''.
See the my sample program : This is sales report by monthly..
REPORT ZFDSALES_REPORT no standard page heading
message-id zwave.
Data Declaration Part
TYPE-POOLS
type-pools : slis.
Tables
tables : VBAK,
VBAP.
Internal table for VBAK Table
data : begin of i_vbak occurs 0,
vbeln like vbak-vbeln,
bstnk like vbak-bstnk,
vdatu like vbak-vdatu,
end of i_vbak.
Internal table for VBAP and MATNR
data : begin of i_vbap occurs 0,
vbeln like vbap-vbeln,
matnr like vbap-matnr,
kdmat like vbap-kdmat,
kwmeng like vbap-kwmeng,
netpr like vbap-netpr,
maktx like makt-maktx,
end of i_vbap.
Internal tables
data : begin of i_sales occurs 0,
vdatu like vbak-vdatu,
bstnk like vbak-bstnk,
matnr like vbap-matnr,
maktx like makt-maktx,
kdmat like vbap-kdmat,
kwmeng like vbap-kwmeng,
netpr like vbap-netpr,
end of i_sales.
Variable for ALV
data : v_repid like sy-repid,
gt_fieldcat type slis_t_fieldcat_alv.
Selection-screen
selection-screen : begin of block blk with frame title text-001.
select-options : s_vbeln for vbak-vbeln,
s_erdat for vbak-erdat,
s_ernam for vbak-ernam,
s_vdatu for vbak-vdatu obligatory,
s_BSTNK for vbak-BSTNK,
s_KUNNR for vbak-kunnr,
s_matnr for vbap-matnr,
s_KDMAT for vbap-KDMAT.
selection-screen : end of block blk.
Initilization
initialization.
v_repid = sy-repid.
S T A R T - O F - S E L E C T I O N ****************
start-of-selection.
Get the data from VBAK and VBAP Tables
perform get_vbak_vbap.
E N D - O F - S E L E C T I O N *****************
end-of-selection.
Display the data
perform dispolay_data.
*& Form get_vbak_vbap
Get the data from VBAK and VBAP Table
FORM get_vbak_vbap.
Get the data from VBAK Table
select vbeln bstnk vdatu from vbak into table i_vbak
where vbeln in s_vbeln
and bstnk in s_bstnk
and vdatu in s_vdatu
and kunnr in s_kunnr
and erdat in s_erdat
and ernam in s_ernam.
if sy-subrc ne 0.
message e000(zwave) with 'No data found for given selection'.
endif.
Get the data from VBAP Table
select avbeln amatnr akdmat akwmeng a~netpr
b~maktx into table i_vbap
from vbap as a inner join makt as b on bmatnr = amatnr
for all entries in i_vbak
where a~vbeln in s_vbeln
and a~kdmat in s_kdmat
and a~abgru = space
and a~matnr in s_matnr
and a~matnr ne '000000000000009999'
and a~matnr ne '000000000000004444'
and a~matnr ne '000000000000008888'
and a~matnr ne '000000000000001111'
and a~werks = '1000'
and b~spras = 'E'
and a~vbeln = i_vbak-vbeln.
if sy-subrc ne 0.
message e000(zwave) with 'No data found for given selection'.
endif.
sort i_vbak by vbeln.
sort i_vbap by vbeln matnr.
loop at i_vbap.
read table i_vbak with key vbeln = i_vbap-vbeln
binary search.
if sy-subrc eq 0.
i_sales-bstnk = i_vbak-bstnk.
i_sales-vdatu = i_vbak-vdatu.
i_sales-matnr = i_vbap-matnr.
i_sales-kdmat = i_vbap-kdmat.
i_sales-maktx = i_vbap-maktx.
i_sales-netpr = i_vbap-netpr.
i_sales-kwmeng = i_vbap-kwmeng.
append i_sales.
else.
continue.
endif.
clear : i_sales,
i_vbap,
i_vbak.
endloop.
sort i_sales by vdatu bstnk matnr.
refresh : i_vbap,
i_vbak.
ENDFORM. " get_vbak_vbap
*& Form dispolay_data
Display the data
FORM dispolay_data.
Fill the Fiedlcat
PERFORM fieldcat_init using gt_fieldcat[].
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 = ' '
I_CALLBACK_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_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = gt_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = i_sales
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " dispolay_data
*& Form fieldcat_init
text
-->P_GT_FIELDCAT[] text
FORM fieldcat_init USING e01_lt_fieldcat type slis_t_fieldcat_alv.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
Delivery Date
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'VDATU'.
LS_FIELDCAT-OUTPUTLEN = 12.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Delivery Date'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
Purchase Order #Material Description
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'BSTNK'.
LS_FIELDCAT-OUTPUTLEN = 25.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Purchase Order #'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
Material
CLEAR LS_FIELDCAT.
LS_FIELDCAT-REF_FIELDNAME = 'MATNR'.
LS_FIELDCAT-REF_TABNAME = 'MARA'.
LS_FIELDCAT-FIELDNAME = 'MATNR'.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Material #'.
ls_fieldcat-seltext_M = 'Material #'.
ls_fieldcat-seltext_S = 'Material #'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
Material Description
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MAKTX'.
LS_FIELDCAT-OUTPUTLEN = 40.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Material Description'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
Customer Material #
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'KDMAT'.
LS_FIELDCAT-OUTPUTLEN = 35.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Customer material no.'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
Quantity
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'KWMENG'.
LS_FIELDCAT-OUTPUTLEN = 15.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Quantity'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
Net Price
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'NETPR'.
LS_FIELDCAT-OUTPUTLEN = 15.
LS_FIELDCAT-TABNAME = 'I_SALES'.
ls_fieldcat-seltext_L = 'Net Price'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
ENDFORM. " fieldcat_init
Reward Points if it is helpful
Thanks
Seshu -
How to create custom report plugin using child region report metadata
Hi,
I want to ask for help on how to create custom report plugin using child region report metadata. My idea is to create a child region, a classic report and set the condition to never.
Then i will query the child report metadata from apex view and use it to create a custom report like using jquery jq-grid. Any idea how i can create a process that will use the child report
metadata? I dont know how i can create a process just like how apex work, how apex render report, coz i want it to be control using the standard apex report attribute. This plugin will
render according to the child report attribute.
Is there anybody here had ever done this?Hi Nicolette,
Thanks for the reply. I know where to find the metadata, just asking for idea on how the rendering process will be.
Start from determining column heading, column order until finish rendering the report. The same way how apex
render the classic report.
Previously this imy my rendering process:
FUNCTION GETCOLUMN(P_REGION IN APEX_PLUGIN.T_REGION,
P_PLUGIN IN APEX_PLUGIN.T_PLUGIN,
P_VALUE IN VARCHAR2) RETURN SYS.DBMS_SQL.DESC_TAB2 IS
VSQLHANDLER APEX_PLUGIN_UTIL.T_SQL_HANDLER;
VCOLCOUNT NUMBER;
VCOLNAMES VARCHAR2(2000);
VAJAXIDENTIFIER VARCHAR2(100);
VPAGESIZE TYPEATTR := P_REGION.ATTRIBUTE_04;
VJSCODE VARCHAR2(32767);
BEGIN
VSQLHANDLER := APEX_PLUGIN_UTIL.GET_SQL_HANDLER(P_SQL_STATEMENT => 'select * from s_emp',
P_MIN_COLUMNS => 1,
P_MAX_COLUMNS => 999,
P_COMPONENT_NAME => P_REGION.ID);
VCOLCOUNT := VSQLHANDLER.COLUMN_LIST.COUNT();
FOR I IN 1 .. VCOLCOUNT LOOP
VCOLNAMES := VCOLNAMES || '{name: "' ||
UPPER(VSQLHANDLER.COLUMN_LIST(I).COL_NAME) || '",';
END LOOP;
APEX_PLUGIN_UTIL.FREE_SQL_HANDLER(VSQLHANDLER);
RETURN VSQLHANDLER.COLUMN_LIST;
EXCEPTION
WHEN OTHERS THEN
APEX_PLUGIN_UTIL.FREE_SQL_HANDLER(VSQLHANDLER);
RAISE;
END GETCOLUMN;
So this is how i get the header for my report plugin. The same method is use to get the value / data for each column. This process is work. So now
i want to extend my plugin so that i will use all attributes from the child report to render my plugin. So the column header, column order, all will depend
on the child report. And the column display condition is set, it will also check the condition before render the column. Sounds like i want to reinvent
the normal apex rendering process but this is what i want to achieve.
I need help to find the correct logic for my render process. Don't want too much for starting, just want to render the plugin correctly, same with child report,
same columns alias, column ordering and column conditional display.
Thanks,
akulala -
Hi,
I have a Custom Report Template, it is a Named Column(Row) Report that I have created. It seems I can get the look and feel I want on a per row basis. But when I try and convert it to be able to loop through for a specific type, like a break on the first column, it gets all messed up. I was wondering if someone might be able to shed some light for me on this I have tried everything
Here is the row template
<table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000">
<tr class="Tabledetail">
<td class="SectionHeading" width="100%" bgcolor="#336699" valign="middle">
<img src="spacer.gif" width="1" height="1"> <b>#1#</b>
</td>
</tr>
<tr class="Tabledetail">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="1" bgcolor=white>
<tr class="Tabledetail">
<td>
<img src="spacer.gif" width="5" height="1">
</td>
<td class=formlabel>
#2#
</td>
<td>
<img src="spacer.gif" width="5" height="1">
</td>
<td colspan=4 class="SectionHeading" bgcolor="#336699" align=middle valign="bottom">
<b>Evaluation Trips</b>
</td>
<td>
<img src="spacer.gif" width="10" height="1">
</td>
<td colspan=4 class="SectionHeading" bgcolor="#336699" align=middle valign="bottom">
<b>All Other Trips</b>
</td>
</tr>
<tr class="Tabledetail">
<td>
<img src="spacer.gif" width="5" height="1">
</td>
<td class=formlabel>
#3#
</td>
<td align=right class=formlabel>
<img src="spacer.gif" width="5" height="1">
</td>
<td align=right class=formlabel>
#4#
</td>
<td align=right class=formlabel>
#5#
</td>
<td align=right class=formlabel>
#6#
</td>
<td align=right class=formlabel>
#7#
</td>
<td>
<img src="spacer.gif" width="10" height="1">
</td>
<td align=right class=formlabel>
#4#
</td>
<td align=right class=formlabel>
#5#
</td>
<td align=right class=formlabel>
#6#
</td>
<td align=right class=formlabel>
#7#
</td>
</tr>
<tr class="Tabledetail" width=50%>
<td>
<img src="spacer.gif" width="5" height="1">
</td>
<td class=formlabel>
#8#
</td>
<td class=formlabel>
<img src="spacer.gif" width="5" height="1">
</td>
<td align=right>
#9#
</td>
<td align=right>
#10#
</td>
<td align=right >
#11#
</td>
<td align=right >
#12#
</td>
<td>
<img src="spacer.gif" width="10" height="1">
</td>
<td align=right >
#13#
</td>
<td align=right >
#14#
</td>
<td align=right >
#15#
</td>
<td align=right >
#16#
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td><img src="spacer.gif" width="1" height="10"> </td>
</tr>
<tr>
<td>Here is the before rows
<table cellpadding="0" border="0" cellspacing="0" summary="" #REPORT_ATTRIBUTES# id="report_#REGION_STATIC_ID#">
#TOP_PAGINATION#
<tr>
<td>
<table cellpadding="0" border="0" cellspacing="0" summary="" class="report-standard">Here is the after rows
</table>
</td>
</tr>
#PAGINATION#
</table>But when I try and pull the upper level html tables out of the row template the format goes to heck. Anyone have any ideas?
Thanks in advance!goochable wrote:
Thanks for the input! Yeah it is based on a query from a collection as all this data is summations that i am pre-populating.
Yes this html is probably from 1998 or 1999 I think they told me actually lol
So there is no way to accomplish what I am trying to do then?
There is no way I could use a break on first column and modify the header info to get the same sort of look and feel?Still not really clear what you are trying to accomplish, and in my view there are so many problems with the "look and feel" that it's not worth perpetuating.
Making a lot of assumptions, I've come up with the kind of HTML structure I'd use when marking up this kind of data. I added a page 2 to your example on apex.oracle.com, showing a basic presentation of this structure alongside the original for comparison, and another styled using the default theme L&F.
<li>Given the requirement to use multi-level headers (and because I prefer to have total control over the HTML), I stayed with a custom report template rather than trying to utilise column breaking with a generic column report template. This also permits use of more advanced table structures than can be supported by standard templates, such as s<tt>colgroup</tt>s to organize the table columns as well as the rows:
Before Rows
<table cellpadding="0" border="0" cellspacing="0" summary="" #REPORT_ATTRIBUTES# id="report_#REGION_STATIC_ID#">
#TOP_PAGINATION#
<tr>
<td>
<table class="fish">
<caption>Some fishy summaries</caption>
<colgroup span="1"></colgroup>
<colgroup span="4" class="evaluation-trips" align="right"></colgroup>
<colgroup span="4" class="other-trips" align="right"></colgroup>
After Rows
</table>
</td>
</tr>
#PAGINATION#
</table><li>Rather than separate tables, the report is contained in one HTML table, utilizing the <tt>tbody</tt> element to subdivide this into separate row groups to meet the "break on first column" requirement. This is achieved using conditional row templates, with PL/SQL Expressions based on the values of metadata columns added to the query:
Row Template 1
Header rows and first data row for each row group. <tt>scope</tt> attributes are added to multi-column headers for improved accessibility:
<tbody>
<tr>
<th colspan="9" scope="rowgroup">#C1#</th>
</tr>
<tr>
<th></th>
<th colspan="4" scope="colgroup">Evaluation Trips</th>
<th colspan="4" scope="colgroup">All Other Trips</th>
</tr>
<tr>
<th>#C2#</th>
<th>#C4#</th>
<th>#C5#</th>
<th>#C6#</th>
<th>#C7#</th>
<th>#C4#</th>
<th>#C5#</th>
<th>#C6#</th>
<th>#C7#</th>
</tr>
<tr class="#ALT#">
<td class="desc">#C8#</td>
<td>#C9#</td>
<td>#C10#</td>
<td>#C11#</td>
<td>#C12#</td>
<td>#C13#</td>
<td>#C14#</td>
<td>#C15#</td>
<td>#C16#</td>
</tr>
#CLOSE_ROW_GROUP#
Row Template 1 Expression
This template is used when the row metadata shows that the current row is in a different row group from the previous row:
#ROW_GROUP# != #PREVIOUS_ROW_GROUP#
Row Template 2
This is the "default" template, used for any subsequent data rows in the row group:
<tr class="#ALT#">
<td class="desc">#C8#</td>
<td>#C9#</td>
<td>#C10#</td>
<td>#C11#</td>
<td>#C12#</td>
<td>#C13#</td>
<td>#C14#</td>
<td>#C15#</td>
<td>#C16#</td>
</tr>
#CLOSE_ROW_GROUP#Both templates make use of a <tt>#CLOSE_ROW_GROUP#</tt> column value conditionally generated in the query that returns a <tt></tbody></tt> tag if the current row is the last data row in the row group. (Mixing logic and structure in this way is not good practice, but APEX only allows up to 4 conditional row templates, which is completely insufficient for any moderately complex structure.)
<li>Several metadata columns (incorporating heavy use of analytic functions) are added to the report query for use in the report template or CSS presentation:
with fish as (
select
c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16
Generate a fixed order for separate report sections/row groups.
(This is a guess as the actual requirement is not specified.)
, case c1
when 'OTC Summary' then 1
when 'Retained Catch Summary' then 2
when 'Discarded Catch Summary' then 3
when 'Discarded Species Composition Summary' then 4
when 'Retained Species Composition Summary' then 5
when 'Priority Species Biospecimen Summary - Discarded Catch' then 6
when 'Other Species Biospecimen Summary - Discarded Catch' then 7
when 'Dissection Summary - Discarded Catch' then 8
end row_group
Calculate row number within row group.
Copes with row order in some row groups being determined
numerically, while others used standard character semantics.
, row_number()
over (
partition by c1
order by to_number(regexp_replace(c8, '[^[:digit:]]')) nulls last
, c8) group_rn
Calculate number of rows in row group.
, count(*)
over (
partition by c1) group_rows
from
test)
select
c1
Not clear on meaning of "Weight"/"Method" values: assumed this is
column heading equivalent to "Species".
Combine both source DB columns into one for HTML heading, dealing
with various null/space/blank issues...
, nullif(c2 || ' ', ' ') || c3 c2
, ' ' c3
, c4
, c5
, c6
, c7
, c8
, c9
, c10
, c11
, c12
, c13
, c14
, c15
, c16
, row_group
Get the rowgroup for the previous row
, lag(row_group, 1, 0)
over (
order by row_group) previous_row_group
, group_rn
, group_rows
Determine odd/even row number: used for standard or alternate style.
, mod(group_rn, 2) alt
Generate a closing element if the row is the last row in the
row group.
, case
when group_rn = group_rows
then
'</tbody>'
else
end close_row_group
from
fish
order by
row_group
, group_rnThis makes major assumptions about the sort order(s) and break(s) required in the report.
<li>Finally, the visual presentation is applied using CSS rather than (mainly deprecated) HTML attributes, via an embedded style sheet in the page HTML Header:
<style type="text/css">
.fish {
empty-cells: show;
border-collapse: collapse;
.fish tbody tr:first-child th {
border-top: 1px solid #fff;
font-weight: bold;
.fish th,
.fish td {
padding: 3px 6px;
.fish th {
border-bottom: 1px solid #fff;
border-left: 1px solid #fff;
background-color: #275096;
color: #fff;
font-weight: 300;
text-align: left;
.fish td {
text-align: right;
.fish tr.\30 td {
background-color: #dde;
.fish td:first-child {
text-align: left;
</style>The default theme L&F report adds vertical borders to separate columns and column groups (latter may not be fully effective on IE: I'm not wasting my time on quirks mode fixes for that).
The resulting report uses 60% less vertical space, and 87% less HTML code[1] than the original. Usability and accessibility are improved by eliminating nested tables and useless table cells and shim images, increasing the contrast between text and background colours, and using alternating row backgrounds for better visual tracking.
[1] Including whitespace, but neither template is compressed in any way: both are in fully readale format including normal whitespace indentation. -
CUSTOM REPORT PROBLEM - REP-1213
I am a student trying to complete a project. I developed a
"custom" report form which uses 5 tables to generate the report.
I have entered the 'fields' at various locations on the report
form and when I run the report I get the following error message:
"REP-1213: Field 'client_id' references column 'CLIENT_ID' at a
frequency below its group."
I have presented this problem to my instructor who does not have
a solution to resolve this problem for me. Is there a solution
for this? Or ... does Oracle not allow for 'custom designing'
of reports? How does someone develop a custom made invoice or
other report for a client without encountering these problems?
Anybody's assistance in this matter would be greatly appreciated.
BO
nullHere is some information that may be of help. This is straight
from Oracle. read the part on FREQUENCY ERRORS carefully.
You may also retrieve this document from:
otn home page --> support --> technicial bulletions -->
sql*reportwriter --> 9006913.61
P.S. reportwriter frames have kicked manny asses!!
Good luck.
Document ID: 9006913.61
Title: Understanding Frames
Revision Number 0
Product: Oracle Reports
Platform: GENERIC
Abstract: This document provides a better
understanding
of frames and the layering concept.
Also
discusses frequency errors.
Keywords: REPEATING;FRAME;VARIABLE;FIXED;EXPAND;
CONTRACT;FREQUENCY;
INTRODUCTION
There are two types of frames: Repeating frames and non-repeating
frames.
Each is a visual representation of actual 3GL code that underlies
the action
of fetching and printing the rows selected from tables.
Non-repeating frames
act as containers and can be mapped back to the pseudocode: BEGIN
and END.
Repeating frames are representations of the Fetch Cycle and can
be mapped to
the pseudocode: WHILE NOT END OF TABLE and END WHILE.
Graphically, frames are stacked one atop the other. This may not
be
immediately apparent. It is difficult to distinguish which frame
is beneath
another. A quick way to see the three-dimensional layering is to
change the
color of the frames. Make each frame a different color. This
will create a
three-dimensional effect as frames above will partially obscure
those beneath
it. You will also notice the layering structure when using the
object
navigator in Reports V2.5
NON-REPEATING FRAMES
Non-repeating frames are not record-related. They print as often
as the
object in which they are enclosed, or to which they are attached
by an anchor.
They do not have a print direction.
REPEATING FRAMES
Repeating frames are place holders for records. Repeating frames
print once
for each record of a group and control record-level formatting.
Reports will
generate one repeating frame for each group when you create a
default layout.
Reports will place containers of columns inside of the frames.
Each repeating
frame retrieves only one row in its fetch cycle for any one
repetition. Until
it is constrained by another frame, it will repeat itself until
the while loop
condition can no longer be satisfied.
VERTICAL AND HORIZONTAL SIZING
The Vertical Sizing of a repeating frame will default to FIXED if
all the
objects in the repeating frame are fixed. If the repeating frame
encloses an
object (e.g. field, frame) that grows, then the vertical sizing
defaults to
VARIABLE or EXPAND.
FIXED
If the Vertical Size of the frame is FIXED then the object's
height is the
same on each logical page, regardless of the size of the objects
or data
within it. Truncation of data may occur. The height of the
object in the
layout editor is the actual height of the object at runtime. No
special
symbol is indicated on the frame in the layout editor.
VARIABLE
If the frame's Vertical Sizing Attribute is VARIABLE and there is
nothing
below it, it collapses. For example, if it normally is four lines
long and
only one row is returned, then it will not print three blank
lines but will
actually collapse the output to one line. If you drag the
position of the
fields downward, the space above will not collapse because of the
IMPLICIT
ANCHOR. The object will expand or contract vertically to
accommodate the
objects or data within it. The height shown in the layout editor
has no
effect on the object's height at runtime. The vertical sizing
attribute
functions as if you used a combination of contract and expand. A
diamond
symbol is indicated on the frame in the layout editor.
EXPAND
If the frame's Vertical Sizing Attribute is set to EXPAND, it
will begin at a
minimum size defined by the frame, and will expand as necessary
to accommodate
more data or lines that exceed the length of the column. An
equal sign symbol
is indicated on the frame in the layout editor.
CONTRACT
If the frame's Vertical Sizing Attribute is set to CONTRACT, the
vertical size
of the object decreases if the formatted objects or data within
it are short
enough, but it cannot increase to accommodate larger data.
Truncation may
occur. A circle is indicated on the frame in the layout editor.
FREQUENCY ERRORS
You may receive frequency errors when a repeating frame is moved
or deleted,
thus changing the layering of the frames. Often, users may
attempt to correct
this error by adding the deleted frame back, but this does not
fix the
problem. The existence of the frame is not enough, even it is
does not
overlap other objects in the layout. The frame must also be in
the right
position within the hierarchy. In addition to recreating the
deleted frame,
you must push the new frame to the right layer using the ARRANGE
option on the
Layout menu.
If you move an object outside its native frame, then you must
enclose it
within a repeating frame to group it within the same loop.
Oracle Worldwide Customer
Support
null -
Calling standard report to my custom report
Hi ALL,
i need to call a standard report into my custom report
for example :
i am having a report with all PR related data
now i am having nearly 20000 purchase requisitons and there related data .
now i will get all the Source of supply for each PR
using bapi BAPI_SOURCEDETERMINE_GETSOS.
now i am having all the PR's and source of supply
then i need to assign source of supply .
using the standard report RM06BZ00.
then how to call this report and assign source of supply .
Will be there any performance considerations for calling this report in a loop (20000)
and how to catch the result
if source of supply was assigned ok
if not how.
Thanks in advance .
sivaHi Prabhu,
Use the Submit Statement for calling the standard report u can use the options available with the submit statement for passing any parameters ,
for reference u can refer following code....
MOVE: 'S_LIFNR' TO seltab_wa-selname,
'S' TO seltab_wa-kind, " SELECT-OPTION
'I' TO seltab_wa-sign,
'EQ' TO seltab_wa-option,
ct1_key-lifnr TO seltab_wa-low.
APPEND seltab_wa TO seltab.
CLEAR seltab_wa.
MOVE: 'S_DOCNO' TO seltab_wa-selname,
'S' TO seltab_wa-kind, " SELECT-OPTION
'I' TO seltab_wa-sign,
'EQ' TO seltab_wa-option,
ct1_key-docno TO seltab_wa-low.
APPEND seltab_wa TO seltab.
CLEAR seltab_wa.
MOVE: 'S_DOCTYP' TO seltab_wa-selname,
'S' TO seltab_wa-kind, " SELECT-OPTION
'I' TO seltab_wa-sign,
'EQ' TO seltab_wa-option,
ct1_key-doctyp TO seltab_wa-low.
APPEND seltab_wa TO seltab.
CLEAR seltab_wa.
MOVE: 'P_CT1' TO seltab_wa-selname,
'P' TO seltab_wa-kind, " SELECT-OPTION
'I' TO seltab_wa-sign,
'EQ' TO seltab_wa-option,
'X' TO seltab_wa-low.
APPEND seltab_wa TO seltab.
CLEAR seltab_wa.
SUBMIT zexc_ct1_prg
via selection-screen
WITH SELECTION-TABLE seltab. -
Runtime Error CALL_FUNCTION_PARM_MISSING in a custom report program
Hi All,
I've created a custom report program to create parameters for a user in a system. I'm getting a runtime error in the code.
The code snippet as below.
I'm getting that error at line no 161. I'm not able to figure it out. Please help me to correct it.
Regards
Mandeep ShresthaHi Glenn,
I'm not creating a user. My requirement is to add a parameter
CRM_THTMLB_IE_COMP with value 'IE8'. I've written the below set of code to achieve that. Can you please help me further.
:i_userlist,i_return,l_errorrole,lv_rows,i_error,i_final,
l_e,lv_rows,l_s.
REFRESH i_bname1.
IF u_name IS NOT INITIAL.
SELECT bname FROM usr01 INTO TABLE
i_bname1 WHERE bname IN u_name.
IF sy-subrc = 0.
LOOP AT i_bname1 INTO wa_bname1.
wa_userlist-username = wa_bname1-bname.
APPEND wa_userlist TO i_userlist.
CLEAR wa_userlist.
ENDLOOP.
DESCRIBE TABLE i_bname1 LINES lv_rows.
ENDIF.
ELSE.
****get all the users****
CALL FUNCTION 'BAPI_USER_GETLIST'
EXPORTING
max_rows = 0
with_username = ' '
IMPORTING
ROWS = lv_rows
TABLES
* SELECTION_RANGE =
* SELECTION_EXP =
userlist = i_userlist
RETURN = i_return.
ENDIF.
****read the PFCG and Business Roles****
SELECT * FROM crmc_ui_profile INTO TABLE i_profile .
IF i_userlist IS INITIAL.
WRITE:'No Users'.
EXIT.
ELSE.
LOOP AT i_userlist INTO wa_userlist.
CLEAR: i_param,i_agrgrp,i_retagr,lv_pfcg.
"IF wa_userlist-username = 'BUILDER_B'.
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
EXPORTING
username = wa_userlist-username
cache_results = 'X'
TABLES
PARAMETER = i_param
* PROFILES =
activitygroups = i_agrgrp
RETURN = i_retagr
* PARAMETER1 =
CLEAR :wa_agrgrp,l_errorrole,wa_retparm,v_business_unit.
CLEAR ls_sales_org.
CALL FUNCTION 'Z0CR_GET_USER_DETAILS'
EXPORTING
iv_username = wa_userlist-username
IMPORTING
* EV_USER_TYPE =
* EV_BUGROUPID =
es_sales_org = ls_sales_org
* EV_PARTNER_ID =
ev_business_unit = v_business_unit.
CALL METHOD CL_CRM_ORGMAN_SERVICES=>MAP_HROBJECT_TO_R3_SALES_ORG
EXPORTING
HROBJECT = ls_sales_org-SALES_ORG
* dbread =
IMPORTING
VKORG = L_ECC
EXCEPTIONS
NO_AUTHORIZATION = 1
NOT_FOUND = 2
OTHERS = 3.
*CALL FUNCTION 'CRM_BUPA_SALES_AREA_TO_R3'
* EXPORTING
* IS_SALES_AREA = ls_sales_org
* IMPORTING
* EV_VKORG = L_ECC
** EV_VTWEG =
** EV_SPART =
* EXCEPTIONS
* NO_MAPPING_DEFINED = 1
* R3_KEY_NOT_DEFINED = 2
* OTHERS = 3
*IF SY-SUBRC <> 0.
** Implement suitable error handling here
*ENDIF.
IF L_ECC = 2040 OR L_ECC = 2010 OR L_ECC = 2050 OR L_ECC = 1900.
** loop at i_param into wa_param .
* wa_param-PARID = 'CRM_THTMLB_IE_COMP' .
* wa_param-PARVA = 'IE8'.
* wa_param-PARTXT = 'CRM BW REPORT PARAMETER'.
* append wa_param to i_param.
** ENDLOOP.
* endif.
CLEAR lv_flag .
****checking if the role having prime support roles then assign the CRM_THTMLB_IE_COMP as IE8
CLEAR lt_role.
SELECT * FROM zuser_role INTO TABLE lt_role
FOR ALL ENTRIES IN i_agrgrp
WHERE pfcg_role = i_agrgrp-agr_name.
IF sy-subrc = 0.
lv_flag = 'X'.
ENDIF.
CLEAR :lv_land.
SELECT SINGLE land1 INTO lv_land FROM hrp1028 WHERE
otjid = ls_sales_org.
LOOP AT i_retagr INTO wa_retagr WHERE TYPE = 'E' OR TYPE = 'A'.
l_errorrole = 'X'.
ENDLOOP.
**error records
IF l_errorrole EQ 'X'.
l_e = l_e + 1.
CLEAR :lv_pfcg,lv_brole.
wa_error-user = wa_userlist-username.
wa_error-pfcg = lv_pfcg .
wa_error-role = lv_brole .
wa_error-MESSAGE = wa_retparm-MESSAGE .
APPEND wa_error TO i_error.
CLEAR l_errorrole.
ELSE.
CLEAR sy-subrc.
CLEAR :wa_param1,lv_vlaues,wa_param.
READ TABLE i_param INTO wa_param1
WITH KEY parid = 'CRM_THTMLB_IE_COMP'.
IF sy-subrc <> 0.
CLEAR wa_paramx.
wa_paramx-parid = 'X'.
wa_paramx-parva = 'X'.
CLEAR :wa_paramc,i_paramc.
wa_paramc-parid = 'CRM_THTMLB_IE_COMP'.
wa_paramc-parva = ' '.
APPEND wa_paramc TO i_paramc.
CALL FUNCTION 'BAPI_USER_CREATE'
EXPORTING
USERNAME = wa_userlist-username
TABLES
PARAMETER = i_paramc
RETURN = i_retparm.
ENDIF.
lv_vlaues = wa_param1-parva.
IF i_agrgrp IS INITIAL AND lv_vlaues IS NOT INITIAL.
CLEAR wa_paramx.
wa_paramx-parid = 'X'.
wa_paramx-parva = 'X'.
CLEAR :wa_paramc,i_paramc.
wa_paramc-parid = 'CRM_THTMLB_IE_COMP'.
wa_paramc-parva = ' '.
APPEND wa_paramc TO i_paramc.
CALL FUNCTION 'BAPI_USER_CHANGE'
EXPORTING
username = wa_userlist-username
parameterx = wa_paramx
* COMPANY =
TABLES
PARAMETER = i_paramc
RETURN = i_retparm
* PARAMETER1 = .
CLEAR :wa_retparm ,l_errorrole.
IF i_retparm IS NOT INITIAL.
LOOP AT i_retparm INTO wa_retparm WHERE TYPE = 'E' OR TYPE = 'A'.
l_errorrole = 'X'.
ENDLOOP.
ENDIF.
**error records
IF l_errorrole EQ 'X'.
l_e = l_e + 1.
wa_error-user = wa_userlist-username.
wa_error-pfcg = lv_pfcg .
wa_error-role = lv_brole .
wa_error-MESSAGE = wa_retparm-MESSAGE .
APPEND wa_error TO i_error.
CLEAR l_errorrole.
ELSE.
l_e = l_e + 1.
wa_error-user = wa_userlist-username.
wa_error-pfcg = lv_pfcg .
wa_error-role = lv_brole .
wa_error-MESSAGE = 'No Roles assigned to User' .
APPEND wa_error TO i_error.
CLEAR l_errorrole.
ENDIF.
ENDIF.
IF i_agrgrp IS NOT INITIAL .
CLEAR lv_count.
LOOP AT i_agrgrp INTO wa_agrgrp WHERE agr_name CP 'L*'.
CLEAR wa_profile.
READ TABLE i_profile
INTO wa_profile
WITH KEY pfcg_role = wa_agrgrp-agr_name.
IF sy-subrc EQ 0 AND
wa_profile-profile IS NOT INITIAL.
lv_count = lv_count + 1.
ENDIF.
ENDLOOP.
IF lv_count EQ '1'.
LOOP AT i_agrgrp INTO wa_agrgrp WHERE agr_name CP 'L*'.
CLEAR :wa_profile,lv_brole,lv_pfcg.
IF wa_agrgrp-agr_name CP 'L*'.
lv_pfcg = wa_agrgrp-agr_name.
READ TABLE i_profile
INTO wa_profile
WITH KEY
pfcg_role = wa_agrgrp-agr_name.
IF sy-subrc EQ 0.
** ***fill business role
lv_brole = wa_profile-profile.
ELSE.
l_e = l_e + 1.
CLEAR lv_brole.
wa_error-user = wa_userlist-username.
wa_error-pfcg = lv_pfcg .
wa_error-role = lv_brole .
wa_error-MESSAGE = 'No Business Role for PFCG' .
APPEND wa_error TO i_error.
CLEAR l_errorrole.
CONTINUE.
ENDIF.
ENDIF.
IF lv_brole IS NOT INITIAL.
CLEAR wa_paramx.
wa_paramx-parid = 'X'.
wa_paramx-parva = 'X'.
CLEAR :wa_paramc,i_paramc.
wa_paramc-parid = 'CRM_THTMLB_IE_COMP'.
IF lv_flag = 'X'.
lv_brole = 'IE8'.
wa_paramc-parva = lv_brole .
* CLEAR lv_flag.
ELSE.
wa_paramc-parva = lv_brole.
ENDIF.
APPEND wa_paramc TO i_paramc.
CALL FUNCTION 'BAPI_USER_CHANGE'
EXPORTING
username = wa_userlist-username
parameterx = wa_paramx
* COMPANY =
TABLES
PARAMETER = i_paramc
RETURN = i_retparm
* PARAMETER1 = .
CLEAR :wa_retparm .
IF i_retparm IS NOT INITIAL.
LOOP AT i_retparm INTO wa_retparm WHERE TYPE = 'E' OR TYPE = 'A'.
l_errorrole = 'X'.
ENDLOOP.
ENDIF.
Maybe you are looking for
-
The -W switch is not working in SQL Server 2012.
Installed SQL Server 2012. The -W switch doesn't work on SQLCMD. Any ideas why or what to do?
-
My iphone appears to be dead how do i get it started again
my phone will not come on. I plug it in and itunes does not register that it is plugged in. how do i get it started
-
Mass upload of route determination
Hi, I have a question with regards to a configuring the route determination, our question is not about configuring the route but having to replace one of the old routes records to a new route. SPRO LE Shipping Routes Route Determination Mai
-
Building report from more than one data model
Hi Experts, I have a requirement to build a report in BI Publisher. The report has three section each having their own data source. When i try to create report in BI Publisher it allows me to associate one data model per report. is it feasible to hav
-
I wanna get the label of the menu and populate it on the form that will open. I saw there is the function, but what is the menuitem_id MenuItem I have to inform? FUNCTION GET_MENU_ITEM_PROPERTY(menuitem_id MenuItem, property NUMBER);