More than one reference characteristics Exception Aggregation
Hi All,
Is it possible to use more than one reference characteristics in reports for Exception Aggregation?
Thanks In Advance
Hi PPMM,
Did you resolve this issue?
Thanks,
Pam
Similar Messages
-
How to select more than one free characteristics in web report?
Hi,
From the performance point of view, I want to select more than one free characteristics to be displayed in WEB report.
I know in BEx Analyzer, we can do this by right mouse click and choose' query property' from the context menu, all the free characteristics are displayed in the popup window. But in WEB report these free char don't displayed in the 'query property' popup window.
Could anyone tell me how to implement this in WEB report?
EileenHi,
each free characteristics in the list has two functions beside it, 'drilldown in rows' and 'drilldown in columns', but this functions as select only one free characteristics, each time you select one, the report will be loaded again.
if I want to select like 10 free characteristics, the report will be refreshed and reloaded 10 times.
my question is that how can I select these 10 free characteristics once to improve the performance.
your help will be appreciated. Thanks.
Eileen -
How can I reference more than one jar file
hi, In an applet, I use
Archive = "foo.jar" to reference this jar file.
But how can I reference more than one file?
Thanks.Suggestion: spend a few minutes reading the tutorials.
http://java.sun.com/docs/books/tutorial/applet/appletsonly/html.html
You can specify multiple archive files by separating them with commas:
<APPLET CODE="myapplet.class" ARCHIVE="file1, file2" WIDTH=anInt HEIGHT=anInt>
</APPLET> -
Can't SSAS engines make use of more than one aggregation to answer a query?!
I have a very simple cube (just for testing and training) . This cube contains two dimensions: [Dim Soccer Player] contains one attribute hierarchy [player name], the other dimension
is [Dim Match Acts] contains also one attribute [Acts] which has values like fouls, goals, saves, tackles… etc. And of course a Fact that contains one measure of Just Count ... that simple ... so this cube can
answers a question like how many goals scored by "Messi", for example ... a very simple trivial cube.
I'm testing aggregations and their effect. so first I've designed one aggregation (Aggregation 0) on the granularity level of [Player name], then
I run a query to get the count of ALL the[Acts] done by each [Player name] ... I've checked the SQL Profiler and I found that the aggregation was used.
Then I cleared the cache, and I run another query, but this time to get just the number of Fouls committed by each [Player name], I checked the Profiler but the Aggregation 0 was NOT used.
I went back to the aggregations design tab in BIDS, and I added another new aggregation (Aggregation 1) on the level of [Acts], so now I have two aggregation one on the granularity level of
[Player name] and the second on the level of the [Acts].... I cleared the cache again and rerun the last query. NONE of the aggregation was used!
In the third test I deleted Aggregation 1 and added [Acts] to Aggregation 0. so Aggregation 0 now on both [Player name] AND [Acts]... cleared the cache and rerun the last query. Aggregation
0 appeared again.
I just want to make sure (and if possible know why) the SSAS engine can't make use of and combine more than one aggregation to serve a query (point number 2), and that to design an aggregation
that will serve a query which contains attributes from different dimensions, I have to add ALL the attributes in that query in that one aggregation, like point 3 ... is this true?!I think you are on the right track. You need to include all the attributes used in one query in the same aggregation (like #3) for it to be used. Example #2 works as I would expect. Queries above the grain of the agg (query by player name and an agg by
player/act can be used) can be used. Queries below grain of the agg (example #2) can't use the agg.
http://artisconsulting.com/Blogs/GregGalloway -
Activate more than one Aggregation Level
Hello experts,
We use the Integrated Planning and we have more than 80 Aggregation Levels. When the MultiProvider is deactived because of adding a new InfoObject, all our Aggregation Levels are deactivated.
Is there a possibility to activate more than one Aggregation Level at once? Maybe a special report?
Thank you.Hi,
please check:
[Re: Activate all the Aggregation level of underlying multi provider]
Gregor wrote a small program and posted it to the forum. Please note: There is no support for this tool.
Bye Matthias -
Exception MDSLockedSessionManager already registered. Can't register more than one.
I've migrated my application from 11.1.2.1 to 12.1.2 using JDev 12c.
I can deploy it to my standalone weblogic without problem.
But when I access it I get exception:
java.lang.Exception: MDSLockedSessionManager already registered. Can't register more than one.
at oracle.adf.share.mds.MDSTransManager.registerMDSLockedSessionManagerInst(MDSTransManager.java:131)
at oracle.adf.share.mds.MDSTransManager.registerMDSLockedSessionManager(MDSTransManager.java:123)
The stack trace starts in my custom filter:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException {
chain.doFilter(request, response);
What do I wrong?
Thanks,
LukasCheck all meta data in any descriptors. I bet there is a duplicate entry in one of them (e.g. weblogic-application.xml)...
Timo -
What is the exception for finding more than one row?
What is the exception if you do a select and get more than one row? no_data_found is the exception for not finding any, what is the exception for finding "too much". Thx
Funnily enough there is a complete list of predefined exceptions in the documentation .
Cheers, APC -
More than one throws exception
Please I have a doubt...and I cant find in my directories the documentation that I had installed!!!
So the doubt is: how can I throw more than one exception...what is the syntax?!You can't throw more than one exception, the 'throw' keyword only takes one Throwable. If you mean, how do you declare a method as throwing more than one exception, the exceptions are comma seperated.
public void foo () throws OneException, TwoException, ThreeException
} -
Hotspot on more than one fields in ALV Report
I want to add Hotspot on more than one field in ALV,
one field is Vbeln , one is BSTNK, one is matnr and so on.
i have used form user_command.and have written coding for Vbeln (on vbeln i am showing transaction VA02)
i want to pass an eror mesaage when user clicks on bstnk or matnr.
ThanksHi Lovleen,
*Global definitions *
Data Types
type-pools: slis.
types: begin of tp_data,
ebeln like ekko-ebeln,
*matnr like ekko-matnr,
*meins like ekko-meins,
lifnr like lfa1-lifnr,
chk1,
end of tp_data,
tp_tbl_data type standard table of tp_data.
Constants
Data objects (variable declarations and definitions)
Report data to be shown.
data: it_data type standard table of tp_data.
Heading of the report.
data: t_heading type slis_t_listheader.
======================= Selection Screen ==========================
selection-screen: begin of block b1 with frame title text-t01.
DATA: w_aux_ebeln like ekko-ebeln.
SELECT-OPTIONS s_ebeln for w_aux_ebeln
DEFAULT 1000 .
DATA: w_aux_lifnr like lfa1-lifnr.
SELECT-OPTIONS s_lifnr for w_aux_lifnr
DEFAULT 00000001000 .
selection-screen: end of block b1.
======================== Event Blocks =============================
at selection-screen.
start-of-selection.
perform get_data using it_data.
end-of-selection.
perform build_alv using it_data t_heading.
======================== Subroutines ==============================
*& Form get_data
Gets the information to be shown in the report.
form get_data using t_data type tp_tbl_data.
SELECT e~ebeln
*e~matnr
*e~meins
l~lifnr
INTO CORRESPONDING FIELDS OF TABLE t_data
FROM ekko as e
inner join lfa1 as l on elifnr = llifnr
WHERE e~ebeln in s_ebeln
AND l~lifnr in s_lifnr
endform. " get_data
*& Form build_alv
Builds and display the ALV Grid.
form build_alv using t_data type tp_tbl_data
t_heading type slis_t_listheader.
ALV required data objects.
data: w_title type lvc_title,
w_repid type syrepid,
w_comm type slis_formname,
w_status type slis_formname,
x_layout type slis_layout_alv,
t_event type slis_t_event,
t_fieldcat type slis_t_fieldcat_alv,
t_sort type slis_t_sortinfo_alv.
refresh t_fieldcat.
refresh t_event.
refresh t_sort.
clear x_layout.
clear w_title.
Field Catalog
perform set_fieldcat2 using:
1 'CHK1' 'XFELD' space space space 'Select' 'Select this row' 'Sel'
'Select this row' space space space 'X' 'X' space t_fieldcat,
2 'EBELN' 'EBELN' 'EKKO' space space space space space space space
space space space space space t_fieldcat ,
3 'MATNR' 'MATNR' 'EKKO' space space space space space space space
space space space space space t_fieldcat ,
4 'MEINS' 'MEINS' 'EKKO' space space space space space space space
space space space space space t_fieldcat ,
5 'LIFNR' 'LIFNR' 'LFA1' space space space space space space space
space space space space space t_fieldcat .
Layout
x_layout-zebra = 'X'.
Top of page heading
perform set_top_page_heading using t_heading t_event.
Events
perform set_events using t_event.
GUI Status
w_status = ''.
w_repid = sy-repid.
Title
w_title = <<If you want to set a title for
the ALV, please, uncomment and edit this line>>.
User commands
w_comm = 'USER_COMMAND'.
Order
Example
PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
Displays the ALV grid
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
it_fieldcat = t_fieldcat
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
tables
t_outtab = t_data
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " build_alv.
*& Form set_top_page_heading
Creates the report headings.
form set_top_page_heading using t_heading type slis_t_listheader
t_events type slis_t_event.
data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = ''(001).
append x_heading to t_heading.
Program name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Program: '.
x_heading-info = sy-repid.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
endform.
*& Form set_events
Sets the events for ALV.
The TOP_OF_PAGE event is alredy being registered in
the set_top_page_heading subroutine.
form set_events using t_events type slis_t_event.
data: x_event type line of slis_t_event.
Example
clear x_event.
x_event-name = .
x_event-form = .
append x_event to t_event.
endform.
*& Form set_order
Adds an entry to the order table.
FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
t_sort TYPE slis_t_sortinfo_alv.
DATA: x_sort TYPE slis_sortinfo_alv.
CLEAR x_sort.
x_sort-fieldname = p_fieldname.
x_sort-tabname = p_tabname.
x_sort-up = p_up.
x_sort-down = p_down.
x_sort-subtot = p_subtot.
APPEND x_sort TO t_sort.
ENDFORM. "set_order
*& Form set_fieldcat2
Adds an entry to the field catalog.
p_colpos: Column position.
p_fieldname: Field of internal table which is being described by
* this record of the field catalog.
p_ref_fieldname: (Optional) Table field / data element which
* describes the properties of the field.
* If this field is not given, it is copied from
* the fieldname.
p_ref_tabname: (Optional) Table which holds the field referenced
* by <<p_ref_fieldname>>.
If this is not given, the parameter
<<p_ref_fieldname>> references a data element.
p_outputlen: (Optional) Column width.
p_noout: (Optional) If set to 'X', states that the field is not
* showed initially. If so, the field has to be
included in the report at runtime using the display
options.
p_seltext_m: (Optional) Medium label to be used as column header.
p_seltext_l: (Optional) Long label to be used as column header.
p_seltext_s: (Optional) Small label to be used as column header.
p_reptext_ddic: (Optional) Extra small (heading) label to be
* used as column header.
p_ddictxt: (Optional) Set to 'L', 'M', 'S' or 'R' to select
whether to use SELTEXT_L, SELTEXT_M, SELTEXT_S,
or REPTEXT_DDIC as text for column header.
p_hotspot: (Optional) If set to 'X', this field will be used
* as a hotspot area for cursor, alolowing the user
* to click on the field.
p_showasicon: (Optional) If set to 'X', this field will be shown
as an icon and the contents of the field will set
* which icon to show.
p_checkbox: (Optional) If set to 'X', this field will be shown
as a checkbox.
p_edit: (Optional) If set to 'X', this field will be editable.
p_dosum: (Optional) If set to 'X', this field will be summed
(aggregation function) according to the grouping set
by the order functions.
t_fieldcat: Table which contains the whole fieldcat.
FORM set_fieldcat2 USING
p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set reference fieldname, tablenam and rollname.
If p_ref_tabname is not given, the ref_fieldname given
is a data element.
If p_ref_tabname is given, the ref_fieldname given is a
field of a table.
In case ref_fieldname is not given,
it is copied from the fieldname.
IF p_ref_tabname IS INITIAL.
wa_fieldcat-rollname = p_ref_fieldname.
ELSE.
wa_fieldcat-ref_tabname = p_ref_tabname.
IF p_ref_fieldname EQ space.
wa_fieldcat-ref_fieldname = wa_fieldcat-fieldname.
ELSE.
wa_fieldcat-ref_fieldname = p_ref_fieldname.
ENDIF.
ENDIF.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
Set as editable or not.
IF NOT p_edit IS INITIAL.
wa_fieldcat-input = 'X'.
wa_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
======================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
i_logo = <<If you want to set a logo, please,
uncomment and edit this line>>
it_list_commentary = t_heading.
endform. " alv_top_of_page
*& Form user_command
Called on user_command ALV event.
Executes custom commands.
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
Example Code
Executes a command considering the sy-ucomm.
CASE r_ucomm.
WHEN '&IC1'.
Set your "double click action" response here.
Example code: Create and display a status message.
DATA: w_msg TYPE string,
w_row(4) TYPE n.
w_row = rs_selfield-tabindex.
CONCATENATE 'You have clicked row' w_row
'field' rs_selfield-fieldname
'with value' rs_selfield-value
INTO w_msg SEPARATED BY space.
MESSAGE w_msg TYPE 'S'.
ENDCASE.
End of example code.
endform. "user_command
Reward Points if useful.
Regards,
Manoj Kumar -
I Have had my iPad for 6 months as I cannot access my work emails using windows. I have to say that it is the most unhelpful device I have ever used and although it looks like there isn't an answer for some of the questions I have asked below, I thought I would try!
1) I have upgraded to ios6 and the kindle app will open but crashes and disappears when I try to access a book?
2) is there any way I can open more than one page at a time, as opening one at a time is hopeless?
3) Is there any way you can replicate the right click function on word? As pasting and copying on the iPad is irritating to say the least!
4) why can't my Samsung 11 phone connect to my iPad via Bluetooth? A they can't seem to 'see' each other? I may have turned a setting off when I was recently abroad and didn't want huge roaming charges.
5) Why do the submit buttons on some websites not work and how can I get them to? I never have a problem with windows, but it is often a problem with the iPad.
6) I have several websites which I have built and usually upgrade on the windows desktop, usually through Internet explorer, but I can't access the sites properly on the iPad (I can see them but can't alter them) and when sending emails through the websites they won't show the page and I can't navigate the page (the size of the email page is bigger than the iPad screen, but I can't either shrink the page to size or move the page around as you normally would on the pad, any ideas?
7) finally, when roaming abroad recently, I had no problems using the wifi, but when trying to use the cellular data (using the roaming function) I could not get it to work? The ipad seemed to be connected to the network with no problems, but wouldn't actually update the emails? I tried turning it on and off, but that didn't make a difference. My kindle and mobile phone (both also on 3G ) worked great, it was just (as usual) the ipad playing up.
8) when wanting to alter part of a sentence, I can't always get the cursor in the right place? Sometimes it is simple the wrong line, but often it will only go at the end or start of a word and not where I want it. Is there any way of making it more exact? Again I never have a problem with moving the cursor on windows, either by mouse or on the touch screen function on windows 7. Any ideas? As after pressing the screen multiple times I just want to throw it out of the window!
IT might just be that I don't have the correct settings (I am a technophobe) but I absolutely hate the iPad and only have it for work emails, it is so annoying that I can get my mobile phone and kindle3g to work fine, but always have problems with the iPad. I am sure it could be good (and for reading emails on the go in the uk it is great, as I like the key board) but it just seems to make everything else difficult.
i Hope you can help and sorry for asking questions others have, but I am just hoping that something new might have been developed!
thanks,
K
Message was edited by: K Paton1) I have upgraded to ios6 and the kindle app will open but crashes and disappears when I try to access a book?
Try rebooting your iPad, that should fix he issue. I that doesn't work, delete the app and re-download it. The Kindle books should all be in he Kindle cloud services and you can get them again. I have an iPad2 w/ Kindle app and it works just fine - no issues.
2) is there any way I can open more than one page at a time, as opening one at a time is hopeless?
Page as in a kindle book way? turn iPad to landscape position from portrait position. If, however, you mean open more than one application at a time, then no. And not hopeless, as it takes a bit of time to get used to, going from a desktop/laptop format to tablet format.
3) Is there any way you can replicate the right click function on word? As pasting and copying on the iPad is irritating to say the least!
It's actually fairly easy. Press down on the word, then you can expand by drawing your finger to cover word/sentence/paragraph/page, hit select or select all then it gives you the option to cut, copy, paste, define. If you want to use a word processing app on the iPad, Pages is a good application.
4) why can't my Samsung 11 phone connect to my iPad via Bluetooth? A they can't seem to 'see' each other? I may have turned a setting off when I was recently abroad and didn't want huge roaming charges.
It's the connection on your phone. Samsung Galaxy SII? Android software? What you have to do is go to the phone's settings and connect via wireless, not Bluetooth. Go to System Settings (on phone) and under Wireless and Networks click 'more' and go to the Tethering and Portable Hotspot option. Set up your mobile wifi hotspot, name it though it will probably come up with 'AndroidAP', choose a WPA2 security level and put in a password. Go back to previous screen and turn on 'Portable Wi-Fi Hotspot' box. Then on your iPad in the Settings - Wi-Fi section, it should then recognize your phone for tethering. If it's a Windows Phone 7, I don't know the layout of that software, but presumeably similar.
5) Why do the submit buttons on some websites not work and how can I get them to? I never have a problem with windows, but it is often a problem with the iPad.
Sometimes the issue is with the website design, not all websites are optimized for mobile devices - not just iPad but also Android devices. It happens. They're getting there, but occasionally the page might need a refresh.
6) I have several websites which I have built and usually upgrade on the windows desktop, usually through Internet explorer, but I can't access the sites properly on the iPad (I can see them but can't alter them) and when sending emails through the websites they won't show the page and I can't navigate the page (the size of the email page is bigger than the iPad screen, but I can't either shrink the page to size or move the page around as you normally would on the pad, any ideas?
It depends on what you use to build the websites on the computer. Recommend a free program on the computer called CoffeeCup Free HTML Editor. I don't recommend using IE period; Firefox or Chrome are my choices on Windows machines. I have two websites that I manage, both using this program. I'm assuming that when you mean you can't access the sites on the iPad you mean to update them? Ostensible there are apps to let you do this. What format are the sites? Without seeing what exactly you mean and what you want to do, it's hard to explain.
As for seeing full page while emailing within a site, turn iPad to portrait mode, and try to finger-pinch touch the screen to see if that will bring the fuller page into view. Other option is opening a second tab with same website and just go between tabs to reference material.
7) finally, when roaming abroad recently, I had no problems using the wifi, but when trying to use the cellular data (using the roaming function) I could not get it to work? The ipad seemed to be connected to the network with no problems, but wouldn't actually update the emails? I tried turning it on and off, but that didn't make a difference. My kindle and mobile phone (both also on 3G ) worked great, it was just (as usual) the ipad playing up.
If you were outside the US or Canada, my guess is the problem lies within the SIM card in your iPad. If you were outside North America, there are different band levels - I'm guessing you have a SIM thats locked to a particular provider. Band level frequencies differ per country/continent, so a SIM card that will work in Canada/US will not likely work in UK/Europe/Asia/Australia, etc. you will be able to get your emails again when back on a wifi network. Mobile phone may have a different type SIM card (GSM/HSPA) from your iPad SIM. Also, check your email settings.
8) when wanting to alter part of a sentence, I can't always get the cursor in the right place? Sometimes it is simple the wrong line, but often it will only go at the end or start of a word and not where I want it. Is there any way of making it more exact? Again I never have a problem with moving the cursor on windows, either by mouse or on the touch screen function on windows 7. Any ideas? As after pressing the screen multiple times I just want to throw it out of the window!
Moving the cursor on a sentence is a matter of putting your finger on the screen where you want it. It's exceptionally easy to do. I'm using the Notes app to write this whole segment and I just need to put my finger where I want to change things and presto it's ready for me to change where I want it.
Here's a solution: sell your iPad (after you wipe your data off it) to someone who will appreciate it, and put your money towards the Windows Surface Tablet out later this year/early next year, where you can (reportedly) connect a mouse to it. It will have some of the Windows 7/8 functionality that you're more familiar with, or get a netbook.
- Ceridwyn2 -
Using a ommand to generate more than one row of data in utl file
Hi Guys
This might be a pretty long one. But I require help with regards to using outer and inner loops within my code.
Here is the task:
Each account involved with the DCA Allocation has an entry in the DCAACCOUNTALLOCATION table to track its progress. The STATUS value of the entry shows the position of the account in the DCA Allocation process.
The status entry being tested is 3.
Below is the code:
create or replace
PROCEDURE DCA_BMW_OUT
IS
-- Declare all variables as reference
v_out_file UTL_FILE.FILE_TYPE;
v_row_Count NUMBER;
r_bmw NUMBER;
v_out_directory all_directories.directory_path%type;
v_out_filehandle UTL_FILE.FILE_TYPE := NULL;
v_out_buffer varchar2 (32767);
v_records NUMBER;
body_output varchar2(32759 BYTE);
dictionary_guarantorsexist varchar2 (1 Char);
-- Text required within this part of the procedure
v_body varchar2(32767 BYTE);
v_header VARCHAR2(32759 BYTE);
BEGIN
FOR r_bmw IN
( SELECT *
FROM dcaadditionaldata
WHERE directory_name IS NOT NULL
) LOOP
BEGIN
-- Output file to be added into the directory specified
v_out_file := utl_file.fopen (r_bmw.directory_name, 'DCAExport_1_' || TRIM(TO_CHAR(SYSDATE,'DDMMYYYY_HH24MISS')) || '.txt', 'W');
-- The Header data which will be outputted to the file
v_header := 'KennzeichenBrgschaftsforderungGesamtforderung|Währung|Übergabedatum|DifferenzierungAnwalts-oderInkassofall|MainMarktpartnernummer|
MainAnrede|MainTitel|MainName|MainVorname|MainStraße|MainHausnummer|MainPLZ|MainOrt|MainLand|MainGeburtsdatum|MainTelefonnr.Schuldner|G1Marktpartnernummer
G1Anrede G1Titel G1Name G1Vorname G1Straße G1Hausnummer G1PLZ G1Ort G1Land G1Geburtsdatum G1Telefonnr.Schuldner G2Marktpartnernummer G2Anrede G2Titel
G2Name|G2Vorname|G2Straße|G2Hausnummer|G2PLZ|G2Ort|G2Land|G2Geburtsdatum|G2Telefonnr.Schuldner|G3Marktpartnernummer|G3Anrede|G3Titel|G3Name|G3Vorname|
G3Straße|G3Hausnummer|G3PLZ|G3Ort|G3Land|G3Geburtsdatum|G3Telefonnr.Schuldner|G4Marktpartnernummer|G4Anrede|G4Titel|G4Name|G4Vorname|G4Straße|G4Hausnummer|
G4PLZ|G4Ort|G4Land|G4Geburtsdatum|G4Telefonnr Schuldner|G5Marktpartnernummer|G5Anrede|G5Titel|G5Name|G5Vorname|G5Straße|G5Hausnummer|G5PLZ|G5Ort|G5Land|
G5Geburtsdatum|G5Telefonnr.Schuldner|Kundennr.|Bestandsnr.|Finanzierungsnr.|KennzeichenFinanzierung/Leasing|Kennzeichenprivat/gewerblich|
reguläresVertragsende|Laufzeit|Vertragsdatum|Vertragsstatus|Ratenbetrag|Filiale/Gebiet|Finanzierungstyp|BankverbindungKonto|BankverbindungBLZ|
RSVKennzeichen|Kündigungsdatum|Modell|Fahrgestellnummer|KFZKennzeichen|KFZZulassungsdatum|CoD1Marktpartnernummer|CoD1Anrede|CoD1Titel|CoD1Name|
CoD1Vorname|CoD1Straße|CoD1Hausnummer|CoD1PLZ|CoD1Ort|CoD1Land|CoD1Geburtsdatum|CoD1Telefonnr.Schuldner|CoD2Marktpartnernummer|CoD2Anrede|CoD2Titel|
CoD2Name|CoD2Vorname|CoD2Straße|CoD2Hausnummer|CoD2PLZ|CoD2Ort|CoD2Land|CoD2Geburtsdatum|CoD2Telefonnr.Schuldner|CoD3Marktpartnernummer|CoD3Anrede|
CoD3Titel|CoD3Name|CoD3Vorname|CoD3Straße|CoD3Hausnummer|CoD3PLZ|CoD3Ort|CoD3Land|CoD3Geburtsdatum|CoD3Telefonnr.Schuldner|CoD4Marktpartnernummer|
CoD4Anrede|CoD4Titel|CoD4Name|CoD4Vorname|CoD4Straße|CoD4Hausnummer|CoD4PLZ|CoD4Ort|CoD4Land|CoD4Geburtsdatum|CoD4Telefonnr.Schuldner|
CoD5Marktpartnernummer|CoD5Anrede|CoD5Titel|CoD5Name|CoD5Vorname|CoD5Straße|CoD5Hausnummer|CoD5PLZ|CoD5Ort|CoD5Land|CoD5Geburtsdatum|
CoD5Telefonnr.Schuldner Y|Y|5830,99|EUR|20/08/2009|DCA|4|123456|Herr||Mueller|Rainer|Messigasse|33|84432|Filz|Deutschland|01/07/1957|08912345|234567|Frau|Dr|Mueller|Rita|Messigasse|33|84432|Filz|Deutschland|13/12/1955|08912345|||||||||||||||||||||||||||||||||||||||||||||||||76543|5000234567||Lease|Privat|12/12/2013|60|12/12/2008||250,50|US|Rate|1234567890|32343450|N||BMW 320 i|W34567890PA34567|M-H-3456|09/12/2008||||||||||||||||||||||||
N|450,80|EUR|20/08/2009|DCA|4|987654|Frau||Meier|Heide|Beinstr.|44|86353|Laus|Deutschland|03/06/1949|08987654|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||87654||8765675585|Loan|Gewerblich|14/03/2012|72|14/03/2006||500,01|DF|Select|976579657|32343450|N||BMW 500 sl|W94567890PA34568|M-H-3457|10/03/2006|34343434|Herr|Dipl|Meier|Rudolf|Heislestr.|69|85433|Maus|Deutschland|28/05/1945|08934567|234567|Frau|Dr|Mueller|Rita|Messigasse|33|84432|Filz|Deutschland|13/12/1955|08912345
Y|33970,50|EUR|20/08/2009|Lawyer|4|64646464|Frau||Schmidt|Susanne|Hueftgasse|55|89363|Maus|Deutschland|23/08/1933|08934567|34343434|Herr|Dipl|Meier|Rudolf|Heislestr.|69|85433|Maus|Deutschland|28/05/1945|08934567|234567|Frau|Dr|Mueller|Rita|Messigasse|33|84432|Filz|Deutschland|13/12/1955|08912345|||||||||||||||||||||||||||||||||||||98757|5000785675||Lease|Privat|11/11/2009|48|11/11/2005||380,70|GH|Zielrate|234567899|32343450|Y||BMW 380 s|W54567890PA34569|M-H-3458|07/11/2005||||||||||||||||||||||||
N|10040,20|EUR|20/08/2009|Lawyer|4|4865465|Herr||Schulz|Karl|Nasenweg|77|83354|Schuh|Deutschland|18/01/1965|08972545|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||46789|50004765787||Lease|Privat|16/09/2012|60|16/09/2007||1234,56|OS|ZUS|98765432|32343450|Y||BMW 280 i|W74567890PA34570|M-H-3459|12/09/2007||||||||||||||||||||||||';
utl_file.PUT_LINE(v_out_file,v_header,TRUE);
-- Below will output a row of data which satisfy the requirements.
FOR body_output IN
( SELECT
AccountDetails.CUSTOMERNUMBER, AccountDetails.ACCOUNTNUMBER, CUSTOMERDETAILS.CDTITLE, CUSTOMERDETAILS.CDFIRSTNAME, CUSTOMERDETAILS.CDLASTNAME, AccountDetails.ACCOUNTTYPE,
AccountDetails.ORIGINALCONTRACTENDDATE, AccountDetails.CONTRACTTERM, AccountDetails.CONTRACTENDDATE, AccountDetails.BRANCHAREA, AccountDetails.PRODUCTTYPE,
AccountDetails.HOUSEBANKACCOUNT, AccountDetails.CARMODEL, AccountDetails.CARLICENCE, AccountDetails.ARREARSBALANCE, AccountDetails.CODEBTOR, AccountDetails.GUARANTORNUMBER
FROM AccountDetails
JOIN CUSTOMERDETAILS ON AccountDetails.CUSTOMERNUMBER = CUSTOMERDETAILS.CUSTOMERS1
WHERE EXISTS
( SELECT *
FROM Dcaaccountallocation
JOIN DebtEpisodes ON DebtEpisodes.ACCOUNTID = Dcaaccountallocation.ACCOUNTID
WHERE Dcaaccountallocation.dcaid = 41
AND Dcaaccountallocation.status = 3
AND DebtEpisodes.DCASentDate IS NULL
AND Dcaaccountallocation.ACCOUNTID = AccountDetails.ACCOUNTNUMBER
AND DebtEpisodes.DCAORLAWYER = 'DCA'
LOOP
UTL_FILE.PUT_LINE (v_out_file,
body_output.CUSTOMERNUMBER|| '|' || body_output.ACCOUNTNUMBER|| '|' ||body_output.CDTITLE|| '||' ||body_output.CDFIRSTNAME || '|||||' ||
body_output.CDLASTNAME|| '||||' || body_output.ACCOUNTTYPE|| '|' ||body_output.ORIGINALCONTRACTENDDATE|| '||||' ||body_output.CONTRACTTERM || '|||||' ||
body_output.CONTRACTENDDATE|| '|' || body_output.BRANCHAREA|| '||' ||body_output.PRODUCTTYPE|| '||' ||
body_output.HOUSEBANKACCOUNT|| '|||' || body_output.CARMODEL|| '||||' ||body_output.CARLICENCE|| '|' ||
body_output.ARREARSBALANCE|| '||||' || body_output.CODEBTOR|| '|' ||body_output.GUARANTORnumber);
END LOOP;
UTL_FILE.fclose (v_out_file);
EXCEPTION
WHEN OTHERS THEN
UTL_FILE.put_line (v_out_file, 'failed');
-- If any errors occur when closing the file, then we close the opened file.
IF utl_file.is_open(v_out_file) THEN
UTL_FILE.fclose (v_out_file);
END IF;
END;
UPDATE DebtEpisodes
SET handoverdate = null
WHERE DCAORLAWYER = 'DCA'
AND accountid IN
( SELECT accountid
FROM Dcaaccountallocation
WHERE Dcaaccountallocation.status = 3
AND Dcaaccountallocation.dcaid = 41
END LOOP;
END DCA_BMW_OUT;
Currently, the above codes issue is that although many rows of data have been inputted in all the tables, with regards to the select criteria above (in italics), it only produces one row of data when i expect more than one to appear.
If the query only outputs one row but you're expecting it to produce more than one row, then you need to dissect the statement to find out where the output is being unduly restricted
I was told maybe an outerloop or an inner loop would do the trick, but really stuck on how and where to put it.
Hope this makes sense guys and I would really appreciate your time.
Thanksif i run this particular code
( SELECT
AccountDetails.CUSTOMERNUMBER, AccountDetails.ACCOUNTNUMBER, CUSTOMERDETAILS.CDTITLE, CUSTOMERDETAILS.CDFIRSTNAME, CUSTOMERDETAILS.CDLASTNAME, AccountDetails.ACCOUNTTYPE,
AccountDetails.ORIGINALCONTRACTENDDATE, AccountDetails.CONTRACTTERM, AccountDetails.CONTRACTENDDATE, AccountDetails.BRANCHAREA, AccountDetails.PRODUCTTYPE,
AccountDetails.HOUSEBANKACCOUNT, AccountDetails.CARMODEL, AccountDetails.CARLICENCE, AccountDetails.ARREARSBALANCE, AccountDetails.CODEBTOR, AccountDetails.GUARANTORNUMBER
FROM AccountDetails
JOIN CUSTOMERDETAILS ON AccountDetails.CUSTOMERNUMBER = CUSTOMERDETAILS.CUSTOMERS1
WHERE EXISTS
( SELECT *
FROM Dcaaccountallocation
JOIN DebtEpisodes ON DebtEpisodes.ACCOUNTID = Dcaaccountallocation.ACCOUNTID
WHERE Dcaaccountallocation.dcaid = 41
AND Dcaaccountallocation.status = 2
AND DebtEpisodes.DCASentDate IS NULL
AND Dcaaccountallocation.ACCOUNTID = AccountDetails.ACCOUNTNUMBER
AND DebtEpisodes.DCAORLAWYER = 'DCA'
This returns 1 row of data
However if i run a small part of the above code...
SELECT *
FROM Dcaaccountallocation
JOIN DebtEpisodes ON DebtEpisodes.ACCOUNTID = Dcaaccountallocation.ACCOUNTID
WHERE Dcaaccountallocation.dcaid = 41
AND Dcaaccountallocation.status = 2
It returns a lot of rows with a status of 2
Now i presume what I am going to do is to ensure that all the fields provide satisfactory requirements, with regards to the above code. Although I have many records in all the stated tables already.
:( -
Can a Method listen to more than one event in ABAP OO ?
Hi,
is it possible to prepare/register a handler method for e.g two events of two different classes ?
Or can a method generally listen to only one event ?
It seems that the syntax allows only one event ?
methods event_handler for event my_event of my_class.
Thanks for help in advance
OlafAn event can refer to more than one object but you have to instantiate the objects
for example I have 2 grids and want to handle events depending on which grid
the user is selecting / requesting actions on. (I've just posted the relevant bits coded here as data extraction etc you can code normally).
FORM instantiate_grid
* Create Grid container
* Instantiate Grid class
* Instantiate Event Handler class
* Display the Grid
USING grid_container TYPE REF TO cl_gui_custom_container
class_object TYPE REF TO cl_gui_alv_grid
container_name TYPE scrfname.
* create the container
CREATE OBJECT grid_container
EXPORTING container_name = container_name.
* Create the ALV grid object using
* container just created
CREATE OBJECT class_object
EXPORTING
i_parent = grid_container.
* Exclude the SUM function from the GRID toolbar
ls_exclude = cl_gui_alv_grid=>mc_fc_sum.
APPEND ls_exclude TO lt_exclude.
* Instantiate our handler class
* lcl_event_handler
CALL METHOD class_object->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CREATE OBJECT g_handler.
SET HANDLER g_handler->handle_double_click FOR class_object.
SET HANDLER g_handler->handle_hotspot_click FOR class_object.
SET HANDLER g_handler->handle_toolbar FOR class_object.
SET HANDLER g_handler->handle_user_command FOR class_object.
SET HANDLER g_handler->handle_data_changed FOR class_object.
SET HANDLER g_handler->handle_data_changed_finished FOR class_object.
ENDFORM. "instantiate_grid
MODULE status_0100 OUTPUT.
IF grid_container IS INITIAL.
PERFORM instantiate_grid
USING grid_container
grid1
'CCONTAINER1'.
* Grid title Primary Grid
struct_grid_lset-grid_title = 'Delimit Old org Units - Selection'.
struct_grid_lset-edit = 'X'.
struct_grid_lset-sel_mode = 'D'.
PERFORM display_grid
USING
grid1
<dyn_table>
it_fldcat.
ENDIF.
SET PF-STATUS '001'.
SET TITLEBAR '000' WITH 'Delimit Old Org Units'.
ENDMODULE. "status_0100 OUTPUT
* PAI module
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANC'.
LEAVE PROGRAM.
WHEN 'RETURN'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. "user_command_0100 INPUT
MODULE status_0200 OUTPUT.
IF grid_container1 IS INITIAL.
PERFORM instantiate_grid
USING grid_container1
grid2
'CCONTAINER2'.
* Grid title secondary grid
struct_grid_lset-grid_title = 'Delimited Objects'.
struct_grid_lset-edit = ' '.
PERFORM display_grid
USING
grid2
<dyn_table1>
it_fldcat1.
SET PF-STATUS '001'.
SET TITLEBAR '000' WITH 'Org Units Delimited'.
endif.
ENDMODULE. "status_0200 OUTPUT
In your local event handling class use the variable SENDER to determine which grid / object triggered the event
for example
CLASS lcl_event_handler DEFINITION .
PUBLIC SECTION .
METHODS:
**Hot spot Handler
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id es_row_no,
**Double Click Handler
handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no
sender,
** Toolbar handler.
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive
sender,
* button press
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm
sender,
* data changed
handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed,
*data changed finished
handle_data_changed_finished
FOR EVENT data_changed OF cl_gui_alv_grid,
download_to_excel.
ENDCLASS. "lcl_event_handler DEFINITION
* Implementation methods for lcl_event_handler
CLASS lcl_event_handler IMPLEMENTATION.
*Handle Hotspot Click
* When a "hotspotted"cell is double clicked
* Hotspot indicatore needs to be set in
* the field catalog.
* Not required for this application.
METHOD handle_hotspot_click .
PERFORM mouse_click
USING e_row_id
e_column_id.
CALL METHOD grid1->get_current_cell
IMPORTING
e_row = ls_row
e_value = ls_value
e_col = ls_col
es_row_id = ls_row_id
es_col_id = ls_col_id
es_row_no = es_row_no.
CALL METHOD grid1->refresh_table_display.
CALL METHOD grid1->set_current_cell_via_id
EXPORTING
is_column_id = e_column_id
is_row_no = es_row_no.
ENDMETHOD. "lcl_event_handler
*Handle Double Click
METHOD handle_double_click.
CASE sender.
WHEN grid1.
* returns cell double clicked FROM GRID 1
* Ignore any event from GRID 2
PERFORM double_click
USING e_row
e_column.
ENDCASE.
ENDMETHOD. "handle_double_click
* Add our buttons to standard toolbar
METHOD handle_toolbar.
CASE sender.
* Only add functionality to PRIMARY GRID (GRID 1)
WHEN grid1.
* append a separator to normal toolbar
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
* Delimit Org
CLEAR ls_toolbar.
MOVE 'PROC' TO ls_toolbar-function.
MOVE icon_railway TO ls_toolbar-icon.
MOVE 'DELIMIT' TO ls_toolbar-quickinfo.
MOVE 'DELIMIT ORG UNIT' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
* Select All Rows
MOVE 'SELE' TO ls_toolbar-function.
MOVE icon_select_all TO ls_toolbar-icon.
MOVE 'ALL CELLS' TO ls_toolbar-quickinfo.
MOVE 'ALL CELLS' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
* Deselect all Rows.
MOVE 'DSEL' TO ls_toolbar-function.
MOVE icon_deselect_all TO ls_toolbar-icon.
MOVE 'DESELECT ALL' TO ls_toolbar-quickinfo.
MOVE 'DESELECT ALL' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDCASE.
move 0 to ls_toolbar-butn_type.
move 'EXCEL' to ls_toolbar-function.
move space to ls_toolbar-disabled.
move icon_xxl to ls_toolbar-icon.
move 'Excel' to ls_toolbar-quickinfo.
move 'EXCEL' to ls_toolbar-text.
append ls_toolbar to e_object->mt_toolbar.
ENDMETHOD. "handle_toolbar
METHOD handle_user_command.
* Entered when a user presses a Grid toolbar
* standard toolbar functions processed
* normally
g_sender = sender.
CASE e_ucomm.
WHEN 'PROC'. "Process selected data
PERFORM get_selected_rows.
WHEN 'SELE'.
PERFORM select_all_rows.
WHEN 'DSEL'.
PERFORM deselect_all_rows.
WHEN 'EXCEL'.
call method me->download_to_excel.
WHEN OTHERS.
ENDCASE.
ENDMETHOD. "handle_user_command
METHOD handle_data_changed.
* only entered on data change Not req for ths app.
PERFORM data_changed USING er_data_changed.
ENDMETHOD. "data_changed
METHOD handle_data_changed_finished.
* only entered on data change finished Not req for ths app.
PERFORM data_changed_finished.
ENDMETHOD. "data_changed_finished
* Interactive download to excel
method download_to_excel.
field-symbols:
<qs0> type standard table,
<qs1> type standard table.
data: G_OUTTAB1 type ref to data,
g_fldcat1 type ref to data,
LS_LAYOUT type KKBLO_LAYOUT,
LT_FIELDCAT type KKBLO_T_FIELDCAT,
LT_FIELDCAT_WA type KKBLO_FIELDCAT,
L_TABNAME type SLIS_TABNAME.
case g_sender.
when grid1.
get reference of <dyn_table> into g_outtab1.
get reference of it_fldcat into g_fldcat1.
when grid2.
get reference of <dyn_table1> into g_outtab1.
get reference of it_fldcat1 into g_fldcat1.
endcase.
assign g_outtab1->* to <qs0>.
assign g_fldcat1->* to <qs1>.
call function 'LVC_TRANSFER_TO_KKBLO'
exporting
it_fieldcat_lvc = <qs1>
* is_layout_lvc = m_cl_variant->ms_layout
is_tech_complete = ' '
importing
es_layout_kkblo = ls_layout
et_fieldcat_kkblo = lt_fieldcat.
loop at lt_fieldcat into lt_fieldcat_wa.
clear lt_fieldcat_wa-tech_complete.
if lt_fieldcat_wa-tabname is initial.
lt_fieldcat_wa-tabname = '1'.
modify lt_fieldcat from lt_fieldcat_wa.
endif.
l_tabname = lt_fieldcat_wa-tabname.
endloop.
call function 'ALV_XXL_CALL'
exporting
i_tabname = l_tabname
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_title = sy-title
tables
it_outtab = <qs0>
exceptions
fatal_error = 1
no_display_possible = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endmethod.
ENDCLASS. "lcl_event_handler IMPLEMENTATION
The sender instance is a variable such as g_sender type ref to cl_gui_alv_grid. "Sender instance.
The above example is for OO ALV grids but should work for other interactive cases where a User presses a key or does a mouse action.
Cheers
jimbo -
GL account balance splitting in more than one line item in FSV
Friends,
While going through the FSV, gl account balance is splitting in more than one line item with same account name. But if we total the line items ultimately it is tallying with GL balance. What might be the reason. Why it is splitting the balance in more line items with same name and same account number.Dear,
You might be having Document Splitting Activation.with Bussiness Area/ Segment wise/Profit Center Wise. For this please Check - Path > Spro > SAP reference IMG > Financial Accounting (New) > General Ledger Accounting (New) > Business transactions > Document Splitting > Define Document Splitting Characteristics for General Ledger Accounting.
Please go through this & will be able see the Document Splitting is based on Bussiness Area/ Segment wise/Profit Center wise or may be both.
T & R,
Madhuri Panda -
More than one Detail table in the Master Detail forms!
Hi,
I need to have more than one Detail table in Master Detail Forms.
I want to see the details of the rows of the first Detail table in the Second Detail table. Please guide me to do this.
Sincerely yours,
MozhdehYou can do one of two things
1) Depends on the nature of your data model. I was able to manage many to many
relationships using views and instead of triggers. This solution is somewhat complex but can work in certain situations.
2)Works for situations where master record exists. create a page with mulitple portlets syncronized on some related key.
create the following package to use on the md forms to place on the one page to be rendered.
-- this package will facilitate the storage and retrieval of keys used by the related forms.
create or replace package session_var
IS
session_parms portal30.wwsto_api_session;
g_domain varchar2(2000) := portal30.wwctx_api.get_user;
function get_id (id in varchar2) return number;
PROCEDURE SET_ID
(ID in VARCHAR2
,p_val in VARCHAR2
,P_URL in VARCHAR2
END SESSION_VAR;
create or replace package body session_var
IS
--pkg body
function get_id(id in varchar2) return number is
l_store_session portal30.wwsto_api_session;
l_id number;
begin
l_store_session := portal30.wwsto_api_session.load_session(
p_domain => session_var.g_domain,
p_sub_domain => 'your domain');
l_id := l_store_session.get_attribute_as_varchar2( p_name => id);
return l_id;
end get_id;
PROCEDURE SET_ID
(ID in VARCHAR2
,p_val in VARCHAR2
,P_URL in VARCHAR2
IS
l_store_session portal30.wwsto_api_session;
begin
l_store_session := portal30.wwsto_api_session.load_session(
p_domain => session_var.g_domain,
p_sub_domain => 'your domain');
l_store_session.set_attribute(
p_name => id,
p_value => p_val );
l_store_session.save_session;
* Redirect to the page using p_url;
portal30.wwv_redirect.url(P_URL);
end set_id;
END SESSION_VAR;
--the form master detail form, section before display page enter the following code and publish as portlet.
declare
l_fs varchar2(4000);
l_s varchar2(4000);
v_con_id number;
begin
v_con_id :=rfq.session_var.get_id('CON_ID'); -- primary key and key used to relate details
p_session.set_shadow_value( p_block_name => 'MASTER_BLOCK',
p_attribute_name => 'A_CON_ID', -- attribute on form related to primary key
p_value => '= '|| v_con_id,
p_language => portal30.wwctx_api.get_nls_language ,
p_index => 1
l_fs := p_session.get_value_as_varchar2(p_block_name => 'MASTER_BLOCK', p_attribute_name => '_FORM_STATE');
l_s := p_session.get_value_as_varchar2(p_block_name => 'MASTER_BLOCK', p_attribute_name => '_STATUS');
if l_fs = 'SAVE' and l_s is null then
WWV_MASTER_GENSYS_1(p_block_name => p_block_name,
p_object_name => p_object_name,
p_instance => p_instance,
p_event_type => p_event_type,
p_user_args => p_user_args,
p_session => p_session);
p_session.save_session;
end if;
if l_fs = 'QUERY_AND_SAVE' and l_s is null then
WWV_MASTER_GENSYS_1(p_block_name => p_block_name,
p_object_name => p_object_name,
p_instance => p_instance,
p_event_type => p_event_type,
p_user_args => p_user_args,
p_session => p_session);
p_session.save_session;
end if;
exception
when others then
PORTAL30.wwerr_api_error.add(PORTAL30.wwerr_api_error.DOMAIN_WWV,'app','generic','onLink', p1 => sqlerrm);
raise;
end;
--then create other md forms and publish as portlets in a similar manner.
-- create a form (form_session_vars) to call procedure session_vars and place the following code in the
addiontional pl/sql tab
WWV_GENSYS_1(
p_block_name => p_block_name ,
p_object_name => p_object_name,
p_instance => p_instance ,
p_event_type => p_event_type ,
p_user_args => p_user_args ,
p_session => p_session);
--then create a page and place the md forms created above as portlets on the page.
--create a link and target the form_session_vars and in the link target inputs
enter the values for your user parameters
id= CON_ID --"your primary key name"
p_url= url/page/"your_page"
--finally create a report (QBE or standard).
in the column formation section use the link created earlier to direct the user to the target page.
How it works.
When the link is selected the form_session_Var is called and automatically runs setting the primary key values
in the user session store. The step is required or the resulting page will not render properly. Then the user is redirected to the page where the portlets are rendered. The portlets start rendering, the before display page calls the session vars package to retrieve the key and put the form into query_update mode returning the data.
The portlets finish in query_and_save mode with details in update mode, the allowable insert, delete and none actions will be available for the details.
benefits: The session_Var package code is resuable as well as the form form_session_Var and the link. passing the key name and values are done at the report level and detailed in the report links. the md forms will need to reference their related keys. -
Javax.jbi.messaging.MessagingException: More than one operation defined
Hi,
i had already implemented a web service consisting of 6 methods that works fine. Now i want to access this service via JBI. Therefore i developed a service assembly containing only of a soap binding component. When i try to access the jbi environment via the inbound endpoint OpenESB throws following exception:
[#|2006-07-26T16:23:50.531+0200|WARNING|sun-appserver-pe9.0|com.sun.jbi.component.com.sun.httpsoapbc-1.0-2com.sun.jbi.httpsoapbc.embedded.GrizzlyRequestProcessor|_ThreadID=32;_ThreadName=httpWorkerThread-12010-2;_RequestID=a33dbb24-d088-4a6a-9642-96187c32bb36;|Exception in processing request.
javax.jbi.messaging.MessagingException: More than one operation defined. Unable to resolve operation: {http://service}UseRepositoryService,UseRepository,inbound
at com.sun.jbi.httpsoapbc.InboundMessageProcessor.execute(InboundMessageProcessor.java:214)
at com.sun.jbi.httpsoapbc.embedded.GrizzlyRequestProcessor.processAsynchRequest(GrizzlyRequestProcessor.java:214)
at com.sun.jbi.httpsoapbc.embedded.GrizzlyRequestProcessor.service(GrizzlyRequestProcessor.java:173)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
at com.sun.jbi.httpsoapbc.embedded.JBIGrizzlyAsyncFilter.doFilter(JBIGrizzlyAsyncFilter.java:70)
at com.sun.enterprise.web.connector.grizzly.async.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:143)
at com.sun.enterprise.web.connector.grizzly.async.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:132)
at com.sun.enterprise.web.connector.grizzly.async.AsyncProcessorTask.doTask(AsyncProcessorTask.java:81)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
How can i specify in my service assembly that if i send a SOAP request for method X on my client that OpenESB routes this message to the correct Outbound endpoint?
Thank you
ThomasHello Andi,
thanks for your reply. To exclude the soap action error i will post the complete wsdl file now. But in my opinion every operation has its own input and output definition.
The consumer wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://service" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://service" xmlns:intf="http://service" xmlns:tns1="http://types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.2.1
Built on Jun 14, 2005 (09:15:57 EDT)-->
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://service" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://types"/>
<element name="loadEcore">
<complexType>
<sequence>
<element name="ecoreId" type="xsd:long"/>
</sequence>a
</complexType>
</element>
<element name="loadEcoreResponse">
<complexType>
<sequence>
<element name="loadEcoreReturn" type="xsd:base64Binary"/>
</sequence>
</complexType>
</element>
<element name="loadInstance">
<complexType>
<sequence>
<element name="instanceId" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="loadInstanceResponse">
<complexType>
<sequence>
<element name="loadInstanceReturn" type="xsd:base64Binary"/>
</sequence>
</complexType>
</element>
<element name="loadInstanceForProject">
<complexType>
<sequence>
<element name="instanceId" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="loadInstanceForProjectResponse">
<complexType>
<sequence>
<element name="loadInstanceForProjectReturn" type="xsd:base64Binary"/>
</sequence>
</complexType>
</element>
<element name="deleteInstance">
<complexType>
<sequence>
<element name="instanceId" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="deleteInstanceResponse">
<complexType>
<sequence>
<element name="deleteInstanceReturn" type="xsd:boolean"/>
</sequence>
</complexType>
</element>
<element name="getAllInstancesFromDB">
<complexType/>
</element>
<element name="getAllInstancesFromDBResponse">
<complexType>
<sequence>
<element maxOccurs="unbounded" name="getAllInstancesFromDBReturn" type="tns1:InstancePackageValueBean"/>
</sequence>
</complexType>
</element>
<element name="saveInstance">
<complexType>
<sequence>
<element name="resourceBytes" type="xsd:base64Binary"/>
<element name="fileName" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="saveInstanceResponse">
<complexType>
<sequence>
<element name="saveInstanceReturn" type="xsd:boolean"/>
</sequence>
</complexType>
</element>
</schema>
<schema elementFormDefault="qualified" targetNamespace="http://types" xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="InstancePackageValueBean">
<sequence>
<element name="ecoreId" type="xsd:long"/>
<element name="fileName" nillable="true" type="xsd:string"/>
<element name="id" type="xsd:long"/>
<element name="name" nillable="true" type="xsd:string"/>
<element name="usedModels" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="loadEcoreRequest">
<wsdl:part element="impl:loadEcore" name="parameters"/>
</wsdl:message>
<wsdl:message name="loadEcoreResponse">
<wsdl:part element="impl:loadEcoreResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="saveInstanceResponse">
<wsdl:part element="impl:saveInstanceResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="loadInstanceForProjectResponse">
<wsdl:part element="impl:loadInstanceForProjectResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="loadInstanceResponse">
<wsdl:part element="impl:loadInstanceResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getAllInstancesFromDBRequest">
<wsdl:part element="impl:getAllInstancesFromDB" name="parameters"/>
</wsdl:message>
<wsdl:message name="loadInstanceRequest">
<wsdl:part element="impl:loadInstance" name="parameters"/>
</wsdl:message>
<wsdl:message name="getAllInstancesFromDBResponse">
<wsdl:part element="impl:getAllInstancesFromDBResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="loadInstanceForProjectRequest">
<wsdl:part element="impl:loadInstanceForProject" name="parameters"/>
</wsdl:message>
<wsdl:message name="saveInstanceRequest">
<wsdl:part element="impl:saveInstance" name="parameters"/>
</wsdl:message>
<wsdl:message name="deleteInstanceRequest">
<wsdl:part element="impl:deleteInstance" name="parameters"/>
</wsdl:message>
<wsdl:message name="deleteInstanceResponse">
<wsdl:part element="impl:deleteInstanceResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="UseRepository">
<wsdl:operation name="loadEcore">
<wsdl:input message="impl:loadEcoreRequest" name="loadEcoreRequest"/>
<wsdl:output message="impl:loadEcoreResponse" name="loadEcoreResponse"/>
</wsdl:operation>
<wsdl:operation name="loadInstance">
<wsdl:input message="impl:loadInstanceRequest" name="loadInstanceRequest"/>
<wsdl:output message="impl:loadInstanceResponse" name="loadInstanceResponse"/>
</wsdl:operation>
<wsdl:operation name="loadInstanceForProject">
<wsdl:input message="impl:loadInstanceForProjectRequest" name="loadInstanceForProjectRequest"/>
<wsdl:output message="impl:loadInstanceForProjectResponse" name="loadInstanceForProjectResponse"/>
</wsdl:operation>
<wsdl:operation name="deleteInstance">
<wsdl:input message="impl:deleteInstanceRequest" name="deleteInstanceRequest"/>
<wsdl:output message="impl:deleteInstanceResponse" name="deleteInstanceResponse"/>
</wsdl:operation>
<wsdl:operation name="getAllInstancesFromDB">
<wsdl:input message="impl:getAllInstancesFromDBRequest" name="getAllInstancesFromDBRequest"/>
<wsdl:output message="impl:getAllInstancesFromDBResponse" name="getAllInstancesFromDBResponse"/>
</wsdl:operation>
<wsdl:operation name="saveInstance">
<wsdl:input message="impl:saveInstanceRequest" name="saveInstanceRequest"/>
<wsdl:output message="impl:saveInstanceResponse" name="saveInstanceResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="UseRepositorySoapBinding" type="impl:UseRepository">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="loadEcore">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="loadEcoreRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="loadEcoreResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="loadInstance">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="loadInstanceRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="loadInstanceResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="loadInstanceForProject">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="loadInstanceForProjectRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="loadInstanceForProjectResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="deleteInstance">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="deleteInstanceRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="deleteInstanceResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getAllInstancesFromDB">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getAllInstancesFromDBRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getAllInstancesFromDBResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="saveInstance">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="saveInstanceRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="saveInstanceResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="UseRepositoryService">
<wsdl:port binding="impl:UseRepositorySoapBinding" name="UseRepository">
<wsdlsoap:address location="http://localhost:12010/service/repository"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Except for the service name, port, address etc the provider wsdl is the same.
Could you tell me if it works when i will only use one operation for example?
I had already implemented a service assembly which contained only one operation. That SA worked fine.
If the Service Assembly and Binding Component descriptors had wrong references e.g. the wrong interface-name, would OpenESB throws an exception while deployment?
In addition, could you tell me a good link to a nice bpel engine example? How is the interaction between client ans service using the bpel engine?
I think using the SoapBC the interaction is following:
Client --> BC --> Service
With Bpel engine?
Client --> BC --> bpel --> BC2 --> service?
Thanks a lot
Thomas
Maybe you are looking for
-
How to pass parameter as http POST in pageContext.setForwardURL
Hi, I need to call a third party application page in my custom OAF page. I need to pass parameter to this third party page using POST method. I am using following command to call that - HashMap hm = new HashMap(); hm.put("FirstName",firstName ); hm.p
-
Inserting Photoshop photo into a Word document
I'm trying to insert a photoshop photo into a Word document but having no luck. When I get to the photo I want the Insert button vanishes. Please help!!
-
I am using the XSQL servlet from the xdk_nt_10_1_0_2_0_production.zip package. When I run a example I always get the following error (NoSuchMethodError) I am using the xmlparserv2.jar from the xdk\lib dir. What could be wrong? java.lang.NoSuchMethodE
-
Which replacement HD do I need to buy?
The hard drive in my old iMac 20" (Ambient Light Sensor May 2005 model) has died and I need to buy a replacement. Can I check that I am buying the right part? I was going to buy a SATA 3.5" 250Gb and was thinking about getting this one: Seagate ST325
-
Is there any way to revert to the previous version of Firefox.
when i try to open my webmail, using the appropriate password i get the following message: https://webmail.primus.ca/parse.php?file=html/english/xp/xp.html&frame=1 I'd hardly find it necessary to contact the web provider, except for that, so i'd be c