Need help on building routine!
Hi,
Here is my scenario----
we have a report which would give the information on developer activities over a period of time. that report would give the information such as, who is the developer working on which request , how much was the planned time for that request for the developer and what is the actual time the developer has taken and so on---
That report does not have the closing date for the request. However it does have the status of the request .
now i need to fill up a field in cube which would calculates the closing date of CR depending on the status of the request and the date ( last date of activity for the request ). now the date field ( last date of activity for the request ) s not in transfer rules. of course it is der in R/3.
in my requirement text it was only written to add one characteristic which we need to fill up in update routine that i had already done.
what i should do now? shall i add one more field ( last date of activity for the request) in TRs? i did not arrive to a conclusion for update routine logic either!
here is what i tentatively willing to written !
if status of the request = closed
then closed date = last date of activity for the request) this filed is not in BW
else ---
can some body help me in buliding code and what should i do with that unavailable date field in BW?
Many thanks in advance!
Ravi
Hello All,
let me know if u need furthur information
Thanks,
Ravi
Similar Messages
-
Need help in building a utility...?
Gurus,
I need to build a dynamic selection screen for a utility that will extract data from a legacy database. I am not sure how to do it....I have the design in mind but will need help from you experts in the implementation.
So i need to have to twol radip buttons on the selection screen such that when one radio button is clicked then few other select options come on the screen and when the other radio button is selected then different select options come on the screen.
Once the user any of these two radio buttons and fill in the respective values for the parameters, then i have to fire native SQL queries on the legacy SQL database.
Any suggestions...
First i need to code the dynamic selection screen ....Your help will be appreciated...
ThanksPlease have a look at below link. May be helpful to you...[Dynamic Selection Screen|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a07a330f-126c-2910-c684-d2a45f0f37dd]
I hope it helps.
Best Regards,
Vibha -
Need help with transfer routine.
I am doing this enhancement in BW 3.5 version.
There is an object in ODS - > ZPATHNM (Pathname)
It gets data from ZPTDIR object.
Now, 0MATERIAL infoobject has text data. For PATH type materials it has descriptions like pt/dat/fafg.2.0 , pt/dat/ovg.2c ... so on.
The content after pt/dat/ for example fafq.2.0, ovg.2c is available in ODS object ZPATHNM (Pathname)
Since I have to extract PATH material numbers. So I created another object ZPATHMAT and mapping it to ZPTDIR.
I have to write a transfer routine when the 0MATERIAL text description had description beginning with pt/dat/ and the text after pt/dat/ is equal to data in ZPATHNM. i should get material number in ZPATHMAT.
This is the transfer routine, I have written between ZPATHMAT and ZPTDIR . This is working fine.
Data : ZDIRNAM type String,
ZCONT1 type string,
ZCONT2 type string,
ZMATERIAL(18) type C.
ZDIRNAM = TRAN_STRUCTURE-ZPTDIR.
IF ZDIRNAM is not Initial.
Concatenate 'pt/dat/' ZDIRNAM into ZCONT1.
Select single MATERIAL
into ZMATERIAL from /BI0/TMATERIAL
where TXTMD = ZCONT1.
RESULT = ZMATERIAL.
ENDIF.
Now there is another requirement, where I have to create one more object, ZPATHDES. This object should get Material description for path type materials from 0PROD_HIER text table.
This object, 0PROD_HIER is an attribute of 0MATERIAL.
So the logic to get the material description into ZPATHDES, is when the material number in 0MATERIAL is equal to material number in ZPATHMAT (generated from above routine), I should get description (TXTMD) from text table of 0PROD_HIER (/BI0/TPROD_HIER) into this ZPATHDES object.
I able not to connect this logic in the code and it is throwing errors.
I need help in coding.
Thanks.Very hard to understand the logic in a thread. Can you please write your code, which is throwing errors? May be that will help us.
Regards
amandeep sharma -
Need help in building a Query in AR -Daywise Report wih separate outstandin
Hi,
I need to build a report in AR (AR-Daywise Report with separte outstanding)
How to proceeed with sql query for getting the AR-Daywise Report with separte outstanding?
Any help will be needful for me
Thanks and RegardsPost your question in the the Financials forum, you may get a better/faster response.
Financials
Financials
Thanks,
Hussein -
Need help to build Portal Insert URL in OAM..
Hi All,
I have a requirement to customize the user Manager screen in such a way that i need to get only the search criteria tab(but not any of the tabs or links) and the search results.
To achieve this i have builded below Portal URL.
http://training.orademo.com/identity/oblix/apps/userservcenter/bin/userservcenter.cgi?program=search&comp=true
By using this above URL i am able to hide all the tabs in the browser but i need to have that search criteria to be displayed in the screen.
Can any one please suggest me the solution to achieve this.
Its bit urgent requirement.
Thanks in advance.
Siva Pokuri.Hi Colin,
Thanks for your quick response.
URL that i posted will search the users in OAM. But my requirement is like i have to select the attribute and search type and search value from that page(in that Page i should not have UserManager, GroupManager, Org Manager, Identity SYstem Console tab and My Profile , reports ...etc links should not be appear) i sould be able to select the attribute that i would like to search only. so the search functionality should be there.
Based on this req i have to build the URL.
Please help me.
Thanks & Regards,
Siva Pokuri. -
URGENT | Need HELP to build programmatic view criteria
Hi
I need to build programatic view criteria like below,
((JobId = "SH_CLERK" AND Salary > 2500) OR ( Salary > 2500))
AND (DepartmentId =100)
Kindly help how can we achieve this,
The ViewCriteriaItem objects like below, how to link them to achieve like above statement.
ViewObjectImpl empVOImpl = getEmployeesView1();
ViewCriteria vc = empVOImpl.createViewCriteria();
ViewCriteriaRow vcr = vc.createViewCriteriaRow();
//criteria for employee id
ViewCriteriaItem vci1 = vcr.ensureCriteriaItem("JobId");
vci1.setValue("SH_CLERK");
//criteria for showing employees whose salary are more than 10000
ViewCriteriaItem vci2 = vcr.ensureCriteriaItem("Salary");
vci2.setOperator(">");
vci2.setValue(new Number(2500));
//criteria for department
ViewCriteriaItem vci3 = vcr.ensureCriteriaItem("DepartmentId");
vci3.setOperator("=");
vci3.setValue(new Number(100));
vc.addElement(vcr);
empVOImpl.applyViewCriteria(vc);
- Rajesha
Edited by: user12820425 on May 15, 2013 10:18 AMHi Rajesha,
You can follow below steps.
1)Create VOImpl for VO on which you have query based.
2)Remove Column(eg.JobId) from standard Default ViewCriteria
3)In VOImpl create method to Create View custom Criteria, Add element
public ViewCriteria addCustomVC(){
ViewCriteria vc = null;
vc = this.createViewCriteria();
vc.setName("customVC");
ViewCriteriaRow vcRow = vc.createViewCriteriaRow();
vcRow.setConjunction(ViewCriteriaRow.VC_CONJ_AND);
if(getJobId() != null){
vcRow.setAttribute("JobId", "' job_id = "+getJobId()+"'");
}else {
vcRow.setAttribute("JobId",null);
vc.addElement(vcRow);
return vc;
}4)Override standard method public String getCriteriaItemClause to exclude above columns
@Override
public String getCriteriaItemClause(ViewCriteriaItem viewCriteriaItem) {
//JobId
if( "JobId".equals(viewCriteriaItem.getName()) ) {
return (String) viewCriteriaItem.getValue();
}else{
return super.getCriteriaItemClause(viewCriteriaItem);
}5)Override public void executeQuery() method to add custom view criteria
@Override
public void executeQuery()
applyViewCriteria(addCustomVC(), true);
super.executeQuery();
removeApplyViewCriteriaName("customVC");
}Thanks,
Jit -
Hi Gurus,
I need your urgent help on one requirement. I have to write a routine and the requirement is to bring data for K.F. "B" via comparing Materials between 0Material and 0MAT_UNITS.
0Material is already present in my flow and being loaded from DSO1 to DSO2 but 0MAT_UNITS not present. So I have to use a look-up on it using Materials from 0Material.
Materials has to be taken from 0Material and using condition as Observer-A(active) have to match with the materials of 0MAT_UNITS. If the material is present in 0MAT_UNITS with observer 'A' then take the Denominator and Numerator value for that material and produce a conversion factor for that material i.e. (Denominator/Numerator).
Now this factor need to be multiply with a K.F. "A" (already present in my DSO1) and assign the value to K.F. "B" as output (DSO2).
So pls guide me how should I code it in routine and which type of routine should I prefer.
Any effective help will be highly appreciated!!!!Dear Ravi,
Thanks for the promt response.
Actually no as such user exit is found for this requirement.
U know in the transaction VOFM we can create formula for example in my case for condition value..this is achieved by routine(some form in the include program) and then the routine number can be assigned in the configuration setting for the particular transaction. This is what info so far I have searched..but how to crete the routine and all.still i'm searching. Hope I gave you some ground abt the prob??
So if any body have ever come across this requirement..please suggest.
Thanks.
Anup. -
Need Help to build a report "GL Account-wise Outstanding Balance as on"
Hi All,
i have a requirement to build a GL Account-wise Outstanding Balance as on date...
report format
1.Date of Transaction
2.Journal Source
3.Journal Category
4.Opening Balance
5.Debit for the period
6.Credit for the Period
7.Closing Balance
Parameters
Company Code
Account No
Account Description
GL Date(As on)
Currency
my query
select trunc(gjh.posted_date) "Date of Transaction",je_source "Journal Source",je_category"Journal Category",
abs(sum((begin_balance_dr-begin_balance_cr))) "Opening balance",sum(period_net_dr) "Debit for the period",sum(period_net_cr) "credit for the period",
abs(sum((begin_balance_dr-begin_balance_cr)+(period_net_dr-period_net_cr)))"Closing Balance"
from gl_je_headers gjh,gl_je_lines gjl,gl_code_combinations gcc,gl_balances gb
where gjh.je_header_id=gjl.je_header_id
and gjl.code_combination_id=gcc.code_combination_id
and gcc.code_combination_id=gb.code_combination_id
and gjh.currency_code=gb.currency_code
and gjl.set_of_books_id=gb.set_of_books_id
and gjh.period_name=gb.period_name
and gcc.segment1='01'
--and gjl.code_combination_id=12854
and gjh.currency_code='USD'
and gb.actual_flag='A'
and gjh.status='P'
and gjl.status='P'
and gjh.period_name=to_char(sysdate,'Mon-yy')
group by gjh.posted_date,je_source,je_category
pls someone help me to correct the queryWell, you may want to look at the activity for one specific account, in detail, before you try to get involved in summarizing/grouping the detail. That way you will begin to understand what the grouping function in the SQL statement is going to do to you. You do not say what is wrong with your query, but I am assuming that your numbers for the Opening Balance and the Closing Balance are too high. Would that be a correct assumption? The problem, as I see it, is that you are joining the gl lines detail to the gl balances table. That means every record (row) in the join for that account for the desired period is going to have the beginning balance dr and cr columns. So if you sum up that column, you are going to sum up the beginning balances multiple times. What you need to do is first summarize your detail activity by the date, journal source, and journal category, and the debits and credits sums, for the period in question, and store that result, Then do a second query that joins that result set to the gl_balances table. Also not sure what null values are doing to you, if you have them in the debit and credit fields. You may have to convert the null values to a 0 as part of this whole process. Or do this via a custom program. Or if you have a data warehouse, you might want to see if you can handle this in the data warehouse. So some options to thiink about.
John Dickey -
Hello Experts,
I have been assigned to a CRM-UI Object which is basically to create follow-up action i.e. creating debit/credit memos with reference of one/multiple billing documents.
SAP has already provided an option to create the follow-up action for 1 billing document at a time, but the requirement is to create follow-up action for multiple billing documents at a time. For example, There are 2 invoices raised against a dealer "DEL" and due to some reason the dealer wants to send back the products.
Now the dealer wants to create only 1 claim/return for those 2 invoices, Which Standard SAP doesn't provide.
I did some of the development and added the 'Follow-up create' Button to the search result work area of the billing search. But could not able to build the link between the Billing and Sales order Components.
It would be really a great favor if you can guide me to build this navigation link.
Please let me know if any further information required.
Please find the attachment for step-by-step process.
Codes and Configs:
Method DO_PREPARE_OUTPUT to provide the “Follow-up Create” Button
method DO_PREPARE_OUTPUT.
CALL METHOD SUPER->DO_PREPARE_OUTPUT .
DATA:
lr_coco TYPE REF TO cl_beabds_b_bspwdcomponen_impl,
ls_button TYPE crmt_thtmlb_button,
lv_usage TYPE string,
lv_info TYPE string,
lv_info_transfert TYPE string,
lv_show_btn_transfer TYPE boolean VALUE abap_false,
lv_show_btn_cancel TYPE boolean VALUE abap_false,
lv_show_btn_split TYPE boolean VALUE abap_false,
lv_show_btn_create TYPE boolean VALUE abap_false,
lr_col TYPE REF TO if_bol_bo_col,
lv_show_separator TYPE abap_bool,
lv_num_marked TYPE i,
lr_entity TYPE REF TO if_bol_bo_property_access,
lv_appl TYPE bea_appl_ubd.
lr_coco ?= comp_controller.
lr_col = me->typed_context->ubdheader->collection_wrapper->get_marked( ).
lv_num_marked = lr_col->size( ).
* Decide based on the usage which buttons should appear, others are not shown by default
CALL METHOD lr_coco->get_env_info
IMPORTING
ev_usage = lv_usage
ev_info = lv_info
ev_info_transfert = lv_info_transfert.
CASE lv_usage.
WHEN cl_beabds_b_bspwdcomponen_impl=>gc_usage_search_result.
IF lv_info_transfert = cl_beabds_b_bspwdcomponen_impl=>gc_inf_trans_search_result.
lv_show_btn_create = abap_true.
lv_show_separator = abap_true.
ENDIF.
ENDCASE.
if lv_show_btn_create = abap_true.
* Separator between two buttons if needed
IF lv_show_separator = abap_true.
CLEAR ls_button.
ls_button-type = cl_thtmlb_util=>gc_separator.
APPEND ls_button TO gt_buttons.
lv_show_separator = abap_false.
ENDIF.
CLEAR ls_button.
IF lv_num_marked > 0.
ls_button-enabled = abap_true.
ELSE.
ls_button-enabled = abap_false.
ENDIF.
ls_button-text = text-001.
ls_button-id = 'BTN_CREATE'. "#EC NOTEXT
ls_button-on_click = 'CREATE'. "#EC NOTEXT
APPEND ls_button TO gt_buttons.
lv_show_separator = abap_true.
ENDIF.
endmethod.
METHOD eh_oncreate.
* Added by wizard: Handler for event 'CREATE'
TYPES: BEGIN OF ty_trans,
process_type TYPE crmt_process_type,
proc_type_descr_20 TYPE crmt_description_20,
subobject_category TYPE crmt_subobject_category,
subob_cat_descr_20 TYPE crmt_description_20,
END OF ty_trans.
DATA: lt_trans TYPE STANDARD TABLE OF ty_trans ,
ls_trans TYPE ty_trans ,
lv_ref_struct TYPE REF TO ty_trans.
DATA:
lv_struct_ref TYPE REF TO crmt_extbt_il_header_ref,
lv_value_node TYPE REF TO cl_bsp_wd_value_node,
lr_ent TYPE REF TO if_bol_bo_property_access,
lv_bo_coll TYPE REF TO if_bol_bo_col,
ls_ref_header TYPE crmt_extbt_il_header_ref,
lv_title TYPE string,
lr_comp_ctrl TYPE REF TO cl_beabds_b_bspwdcomponen_impl,
lr_cw TYPE REF TO cl_bsp_wd_collection_wrapper,
lr_col TYPE REF TO if_bol_bo_col,
lr_col_proc TYPE REF TO if_bol_bo_col,
lr_bo TYPE REF TO cl_crm_bol_entity.
IF gv_fu_popup IS NOT BOUND.
lv_title = cl_wd_utilities=>get_otr_text_by_alias( 'CRM_UIU_BT/FOLLOW_UP' ).
gv_fu_popup = comp_controller->window_manager->create_popup(
iv_interface_view_name = 'MainWindow'
iv_usage_name = 'UCBTEXTFOLLOWUP'
iv_title = lv_title ).
ENDIF.
CREATE OBJECT lv_bo_coll TYPE cl_crm_bol_bo_col.
lr_comp_ctrl ?= me->comp_controller.
lr_cw = lr_comp_ctrl->typed_context->ubdheader->collection_wrapper.
lr_col = lr_cw->get_marked( ).
CREATE DATA lv_struct_ref.
CREATE OBJECT lv_value_node
EXPORTING
iv_data_ref = lv_struct_ref.
CHECK lr_col IS BOUND AND lr_col->size( ) > 0.
CREATE OBJECT lr_col_proc TYPE cl_crm_bol_bo_col.
lr_bo ?= lr_col->get_first( ).
WHILE lr_bo IS BOUND AND lr_bo IS NOT INITIAL.
lr_bo->get_property_as_value(
EXPORTING
iv_attr_name = 'HEADNO_EXT'
IMPORTING
ev_result = ls_ref_header-object_id ).
ls_ref_header-object_type = 'BILLDO'. "#EC NOTEXT
lv_value_node->set_properties( ls_ref_header ).
lv_bo_coll->add( lv_value_node ).
lr_bo ?= lr_col->get_next( ).
ENDWHILE.
gv_fu_popup->set_on_close_event( iv_view = me iv_event_name = 'FOLLOWUP_SEL_CLOSED' ).
gv_fu_popup->set_display_mode( if_bsp_wd_popup=>c_display_mode_surrounded ).
gv_fu_popup->open( iv_inbound_plug = 'EXTFOLLOWUP' iv_collection = lv_bo_coll ).
ENDMETHOD.
method EH_ONFOLLOWUP_SEL_CLOSED.
* Added by wizard: Handler for event 'FOLLOWUP_SEL_CLOSED'
DATA:
lr_context_node TYPE REF TO cl_bsp_wd_context_node,
lr_current TYPE REF TO cl_crm_bol_entity,
lr_col TYPE REF TO if_bol_entity_col,
lr_wdw TYPE REF TO cl_bsp_wd_window.
IF gv_fu_popup->get_fired_outbound_plug( ) EQ 'LEAVE'. "# EC NOTEXT
lr_context_node = gv_fu_popup->get_context_node( iv_cnode_name = 'BTORDER' ). "# EC NOTEXT
CHECK lr_context_node IS BOUND.
lr_current ?= lr_context_node->collection_wrapper->get_current( ).
CHECK lr_current IS BOUND.
CREATE OBJECT lr_col
TYPE
cl_crm_bol_entity_col.
lr_col->add( lr_current ).
lr_wdw = me->comp_controller->if_bsp_wd_window_manager~get_window( 'MainWindow' ).
lr_wdw->call_outbound_plug( iv_outbound_plug = 'NAVIGATE_CREATE' iv_data_collection = lr_col ). "#EC NOTEXT
ELSEIF gv_fu_popup->get_fired_outbound_plug( ) EQ 'LEAVEPROCTYPE'. "# EC NOTEXT
gv_fu_popup->set_on_close_event( iv_view = me iv_event_name = 'FOLLOWUP_SEL_CLOSED' ).
gv_fu_popup->open( iv_inbound_plug = 'EXTFOLLOWUPITEMS' ).
ENDIF.
endmethod.
method OP_NAVIGATE_CREATE.
* Added by wizard: Outbound plug 'NAVIGATE_CREATE'
DATA:
lr_window TYPE REF TO cl_bsp_wd_window.
lr_window = me->view_manager->get_window_controller( ).
lr_window->call_outbound_plug( iv_outbound_plug = 'NAVIGATE_CREATE'
iv_data_collection = iv_data_collection ).
endmethod.
Thanks,
Subhash.Hi Srikanth,
I believe You are trying to implement dynamic navigation..
lv_data_collection->add( lv_descriptor_object ).
I can see lv_data_collection is not having the actual entity just the descriptor object details you are adding in the lv_data_collection..
If you don't have the context node binding between source and destination component, add the required data to lv_data_collection
, in the target component inbound plug retrieve the same data entity and set it on the relevant context node.
To get an idea, check standard component for where dynamic navigation is implemented.
Hope this helps..
Cheers,
Sumit Mittal -
Urgent !!! Need help in modifying routine in transformation?
Hi
I am using following routine in a transformation for Location number characteristic.
data: lv_country type /BIC/PZCUSTOMER-country.
select single country
into lv_country
from /BIC/PZCUSTOMER
where /BIC/ZCUSTOMER = SOURCE_FIELDS-CUSTOMER and
objvers = 'A'.
if sy-subrc = 0.
RESULT = lv_country.
endif.
The modification is
a. Currently the ZLOCNO is set to be the country of demand, This is what I need it to be:
i. IF Company Code = 70, then set ZLOCNO = VS,
ELSE set ZLOCNO = ZLOCNO__0COUNTRY from the ZLOCNO characteristics. Use the county code from the existing routine for lookup.
Please help me out to write a routine for thisHi,
In 7.0, global declaration of start routine will be in a specific place. Declare the variable under this part in the start routine.
$$ begin of global - insert your declaration only below this line -
... "insert your code here
$$ end of global - insert your declaration only before this line -
Vivek -
Need help in building search query
Guys ..
Problem Description:
I have a huge table that is indexed using CONTEXT.
I want to write a search query that considers the following:
1. number of keywords match
2. takes care of spelling mistakes, synonyms and acronyms
3. proximity - the keywords should not be too far of each other.
e.g. I have this phrase: "Horizontal Stabilizer Trim Brake"
I was thinking of writing a query like:
SELECT SCORE(1) SCORE,
TEXT text
FROM MY_TABLE
WHERE CONTAINS(TEXT, '(Horz | Horizontal) ACCUM (Stab | Stabilier) ACCUM Trim ACCUM (Brk | Break)', 1) >= 0
ORDER BY SCORE DESC
The results doesnt look satisfactory. I have not used "near" operator as i dont know how to use it.
Please help me as I am very much new to Oracle Text.
-GWell, I'm not going to write the function for you, but we can at least talk through a general strategy.
A lot depends on how you help your users on the front end -- for example, if they're searching a technical document, you may want to return results that aren't perfect matches but you do want to make sure the user picks 'mandatory' and 'useful' keywords in a way that lets you figure out which ones are really important. On the other hand, if you're google and have to handle queries like 'horizontal stabilizer trim brake' and 'were Pete and Jenny in the break room' then you run the risk of spending too much time looking for interesting words, almost doing a full-text search on the query trying to derive meaning.
So I'm going to presume that you have some control over what/how the users generate their searches so that finding keywords isn't the issue.
The plan will be to parse the query a bit to find the interesting words, clean them up, and weigh their importance, then use transformed data to build the query template to score various combinations.
So here's some pseudocode for the function:
function parse_query(pQueryWords in clob) returns clob as
begin
generate_token_list (); -- split the query into a set of individual tokens/words
for each token in token_list
if it's a mandatory word then accumtokenlist := accumtokenlist || ' ' || token ||'*10' -- weigh the presence of the token strongly
if it's a useful word then accumtokenlist := accumtokenlist || ' ' || token ||'*5' -- domain-specific words are also important
if it's a stopword or reserved word, then do not add it to the list
if it's not on my lists, then accumtokenlist := accumtokenlist || ' ' || token
and normaltokenlist := normaltokenlist ||' ' || token
end;
--so now, we have two lists, one for NEAR and one for ACCUM
now build the guts of the template
querytemplate := querytemplate || '<seq> || normaltokenlist || '</seq>';
querytemplate := querytemplate || '<seq> || replace (accumtokenlist, ' ',' ACCUM ') || '</seq>';
querytemplate := querytemplate || '<seq>$' || replace(normaltokenlist,' ','$') || '</seq>';
querytemplate := querytemplate || '<seq>? || replace(replace(accumtokenlist,' ',' ?'),' ', ' accum ') || </seq>'; -- first fuzzy the words, then accum
querytemplate := querytemplate || '<seq>? || replace(replace(normaltokenlist,' ',' ?'),' ', ' near ') || </seq>'; -- first fuzzy the words, then near
return querytemplate
end;So, with a 'cooked' query text that is template-friendly, all we need to do is apply a template that is aware of your inputs:
query_Template_string := '
<query>
<textquery lang="ENGLISH" grammar="CONTEXT"> horizontal stabilizer*5 trim brake*10
<progression> '
|| parse_query('horizontal stabilizer trim brake') ||
' </progression>
</textquery>
<score datatype="INTEGER" algorithm="COUNT"/>'
</query>So that's an example of one approach. -
Hi,
I have a requirment where the table data looks like as below:
COL_NAME COL_NAME1
RAW_SDP FCT_SDP
FILENAME FILENAME
SDPID SDPID
CDRID CDRID
ORIGINALCDRNODEID ORIGINALCDRNODEID
ORIGINALCDRID ORIGINALCDRID
SUBSCRIBERNUMBER SUBSCRIBERNUMBER
COL_NAME and COL_NAME1 are the 2 columns in the table
RAW_SDP and FCT_SDP data is stored asTable Names.
I want a scenario where i want to pick the data(shown below) as condition as COL_NAME='RAW_SDP'
FILENAME
SDPID
CDRID
ORIGINALCDRNODEID
ORIGINALCDRID
SUBSCRIBERNUMBER
Any help will be benefitial
Thanks and RegardsOk, first you need to be clear what you are referring to...
By "excel file" are you referring to a CSV file (i.e. a flat file you can load in notepad and look at the data) or are you referring to a ".xls" file that is a MS Excel workbook?
If it's a CSV/flat file then you should use external tables to read the data...
http://www.psoug.org/reference/externaltab.html
If it's a .xls workbook file then you will need to set up an ODBC connection and create it as an external database...
e.g.
1- Go to Control Panel>Administrative Tools>Data Sources (ODBC)>System DSN and create a data source with appropriate driver. Name it EXCL.
2- In %ORACLE_HOME%\Network\Admin\Tnsnames.ora fie add entry:
EXCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.12.0.24)(PORT = 1521))
(CONNECT_DATA =
(SID = EXCL)
(HS = OK)
Here SID is the name of data source that you have just created.
3- In %ORACLE_HOME%\Network\Admin\Listener.ora file add:
(SID_DESC =
(PROGRAM = hsodbc)
(SID_NAME = <hs_sid>)
(ORACLE_HOME = <oracle home>)
under SID_LIST_LISTENER like:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\ORA9DB)
(PROGRAM = extproc)
(SID_DESC =
(GLOBAL_DBNAME = ORA9DB)
(ORACLE_HOME = d:\ORA9DB)
(SID_NAME = ORA9DB)
(SID_DESC =
(PROGRAM = hsodbc)
(SID_NAME = EXCL)
(ORACLE_HOME = D:\ora9db)
Dont forget to reload the listener
c:\> lsnrctl reload
4- In %ORACLE_HOME%\hs\admin create init<HS_SID>.ora. For our sid EXCL we create file initexcl.ora.
In this file set following two parameters:
HS_FDS_CONNECT_INFO = excl
HS_FDS_TRACE_LEVEL = 0
5- Now connect to Oracle database and create database link with following command:
SQL> CREATE DATABASE LINK excl
2 USING 'excl'
3 /
Database link created.
Now you can perform query against this database like you would for any remote database.
SQL> SELECT table_name FROM all_tables@excl;
TABLE_NAME
DEPT
EMP -
Need help resolving build Errors.
I get the following nasty error under application builder (see attached screen shot). Can anyone help me resolve this? SS
Attachments:
Build Errors.JPG 43 KBHi,
This is a common error. The first thing I would try it disabling "Disconnect Type definitions" under the Additional Exclusions section application properties. If you are using object oriented programming there might be a different issue. Let us know if the type definitions trick works.
Eric A.
National Instruments
Distributed I/O Product Support Engineer -
Need help with SCHECK routine in RFFOUS_C(it produces an extra page!)
Hello Experts,
I noticed that in one part of the routine SCHECK which can be found in standard program RFFOUS_C, there
is a code that for EVERY END of a house bank, it calls again the window 'CHECK' and element 540. Now,
this creates an extra page which I do not need. Also, they wouldn't let me customize the standard program
since it is being used by many companies. I tried commenting the element but it produces an error.
So for example I only have 3 payment documents, it should produce only 3 pages. I have checked the line items
and they are not enough to trigger an overflow.
Below is the code which causes an extra page:
*-- Ende der Hausbank --------------------------------------------------
*-- end of house bank --------------------------------------------------
AT END OF reguh-ubnkl.
IF cnt_formulare NE 0. "Formularabschluß erforderlich
"summary necessary
* close last check
CALL FUNCTION 'CLOSE_FORM'
IMPORTING RESULT = itcpp.
IF itcpp-tdspoolid NE 0.
CLEAR tab_ausgabe.
tab_ausgabe-name = t042z-text1.
tab_ausgabe-dataset = itcpp-tddataset.
tab_ausgabe-spoolnr = itcpp-tdspoolid.
tab_ausgabe-immed = par_sofz.
COLLECT tab_ausgabe.
ENDIF.
CLEAR flg_druckmodus.
IF hlp_laufk NE '*' "kein Onlinedruck
"no online check print
AND par_nosu EQ space. "Formularabschluß gewünscht
"summary requested
* Formular für den Abschluß starten
* start form for summary
SET COUNTRY space.
IMPORT itcpo FROM MEMORY ID 'RFFORI01_ITCPO'.
itcpo-tdnewid = space.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
form = t042e-zforn
device = 'PRINTER'
language = t001-spras
options = itcpo
dialog = space.
CALL FUNCTION 'START_FORM'
EXPORTING
startpage = 'LAST'
language = t001-spras.
* Vornumerierte Schecks: letzte Schecknummer ermitteln
* prenumbered checks: compute last check number
IF flg_schecknum EQ 1.
PERFORM schecknummer_ermitteln USING 3.
ENDIF.
* Ausgabe des Formularabschlusses
* print summary
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'SUMMARY'
EXCEPTIONS
window = 1.
IF sy-subrc EQ 1.
err_element-fname = t042e-zforn.
err_element-fenst = 'SUMMARY'.
err_element-elemt = space.
err_element-text = space.
COLLECT err_element.
ENDIF.
* Fenster Scheck, Element Entwertet
* window check, element voided check
CALL FUNCTION 'WRITE_FORM' "<-------IT CALLS AGAIN THE CHECK WINDOW SO
EXPORTING "ANOTHER PAGE IS CREATED WHICH I DO NOT NEED
window = 'CHECK'
element = '540'
EXCEPTIONS
window = 1 "Fehler bereits oben gemerkt
element = 2. "error already noted
* Formular für den Abschluß beenden
* end form for summary
CALL FUNCTION 'END_FORM'
IMPORTING
RESULT = itcpp.
IF itcpp-tdpages EQ 0. "Print via RDI
itcpp-tdpages = 1.
ENDIF.
cnt_seiten = itcpp-tdpages. "Für vornumerierte Schecks
"For prenumbered checks
IF flg_schecknum EQ 1 AND cnt_seiten GT 0.
PERFORM scheckinfo_speichern USING 3.
ENDIF.
* Abschluß des Formulars
* close form
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT = itcpp.
IF itcpp-tdspoolid NE 0.
CLEAR tab_ausgabe.
tab_ausgabe-name = t042z-text1.
tab_ausgabe-dataset = itcpp-tddataset.
tab_ausgabe-spoolnr = itcpp-tdspoolid.
tab_ausgabe-immed = par_sofz.
COLLECT tab_ausgabe.
ENDIF.
ENDIF.
IF NOT itcpp-tdspoolid IS INITIAL.
CALL FUNCTION 'RSPO_FINAL_SPOOLJOB'
EXPORTING
rqident = itcpp-tdspoolid
set = 'X'
force = 'X'
EXCEPTIONS
OTHERS = 4.
IF sy-subrc NE 0.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM message USING fimsg-msgno.
ENDIF.
ENDIF.
ENDIF.
ENDAT.I guess, with out customizing the driver program your issue will not be solved.
Don't worry, even if you customized your driver program it will not effect othr companies that are using it.. since check printing program configutation is done at company code level.
For more information on config of check printing program visit transaction code FBZP.
Regards,
SaiRam -
Need help dynamically building combo-boxes...
How can I dynamically build drop down lists?
I was thinking about using a dynamic page, with bind variables
set for sql statements inside <oracle></oracle> tags, or passing
the variable from the first selection to the second selection of
another page (or the same page?)...
Another thing I was thinking about would be to base a form on a
DB procedure, and pass the selections to the procedure, and re-
build the lists that way...
I need to avoid client side processing (javascript) because of
accessiblity concerns.
Any ideas would be greatly appreciated...
RyanAjay,
The following is an excerpt of the code I used. Because of a
lack of time, I haven't made the code generic. The code is used
to interface with Oracle Reports 6i & Oracle Configurator. The
configurator (config_hdr_id & config_rev_nbr) parameters are
selected by the user and passed into Oracle Reports using related
dynamic combo-boxes. Pay particular attention to the
wwpro_api_parameters.get_value function as well as the onChange
javascript. Hope you can take pieces of this for an example.
The following is the code for a Portal dynamic page:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Configurator Reports</title>
<SCRIPT LANGUAGE="JavaScript1.1">
<!-- Comment out script for old browsers
** this function will open a new URL for the Reports CGI
** executable to run the report
function runReport()
// semi-constants for JavaScript
var cgiexe = "runrep.sh";
var slash = "/";
var colon = ":";
var qmark = "?";
var paramsep = "&";
** URL parameter values
** We should check for nulls, http://, etc. but not for now
var dtlist = document.REPFORM.WEBHOST;
var WEBHOST = dtlist.options[dtlist.selectedIndex].value;
var WEBPORT = document.REPFORM.WEBPORT.value;
var dtlist = document.REPFORM.SERVER;
var SERVER = dtlist.options[dtlist.selectedIndex].value;
var dtlist = document.REPFORM.REPORT;
var REPORT = dtlist.options[dtlist.selectedIndex].value;
var dtlist = document.REPFORM.P_HEADER_ID;
var P_HDR_ID = dtlist.options[dtlist.selectedIndex].value;
var P_REV_NBR = document.REPFORM.P_REV_NBR.value;
var dtlist = document.REPFORM.USERID;
var USERID = dtlist.options[dtlist.selectedIndex].value;
var dtlist = document.REPFORM.DESTYPE;
var DESTYPE = dtlist.options[dtlist.selectedIndex].value;
var dflist = document.REPFORM.DESFORMAT;
var DESFORMAT = dflist.options[dflist.selectedIndex].value;
var dtlist = document.REPFORM.MIMETYPE;
var MIMETYPE = dtlist.options[dtlist.selectedIndex].value;
// construct the final URL given the parameters
var URL = "http://" + WEBHOST + colon + WEBPORT +
"/dev60cgi/"
+ cgiexe + qmark +
"server=" + SERVER + paramsep +
"report=" + REPORT + paramsep +
"p_header_id=" + P_HDR_ID + paramsep +
"p_rev_nbr=" + P_REV_NBR + paramsep +
"userid=" + USERID + paramsep +
"destype=" + DESTYPE + paramsep +
"desformat=" + DESFORMAT + paramsep +
"mimetype=" + MIMETYPE;
// alert("Opening a window with the following URL : \r\r" +
URL);
// open the new window with the constructed URL
//runWindow = window.open(URL);
//Point the current window to the URL to run the form
this.window.location.href=URL;
function getRevision(form)
var l_config_hdr_id =
form.P_HEADER_ID.options[form.P_HEADER_ID.selectedIndex].value;
window.location.href =
"/pls/portal30/!PORTAL30.wwpob_page_util.redirect?_pageid=61&_tab
string=&_portletmode=&_cache=1&cz.p_config_hdr_id="+l_config_hdr_
id;
return false;
//-->
</SCRIPT>
</head>
<body>
<form NAME="REPFORM" METHOD="GET" onSubmit="return false">
<table BORDER=0 CELLSPACING="5" valign="top" align="left">
<tr>
<td ALIGN=LEFT COLSPAN="2"><font face="arial" size="-1"><B>Enter
configuration data and click the button to submit the selected
report.</B></font></td>
</tr>
<TR><TD> </TD></TR>
<tr><td valign="top"><table BORDER=0 CELLSPACING="2">
<TR><TD COLSPAN="3" ALIGN="LEFT">
<FONT COLOR="#6666CC" FACE="arial,helvetica"
SIZE="-1"><NOBR><B>Report Parameters</B></NOBR></FONT>
</TD></TR>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Report:</font></td>
<td><font face="arial" size="-1"><select NAME="REPORT">
<option SELECTED
VALUE="portal_test_report_6i.rdf">portal_test_report_6i.rdf
</select></font></td>
</tr>
<ORACLE>
-- Dynamically retrieving the Configurator Header ID's.
-- kreierso 8-oct-01
declare
v_config_hdr_id oc_config_ord_qte_lookup.config_hdr_id%type;
begin
v_config_hdr_id :=
to_number(portal30.wwpro_api_parameters.get_value('p_config_hdr_i
d','cz'));
htp.p('<TR><TD ALIGN="left"><font face="arial"
size="-1">Configuration Header ID:</font></TD>');
htp.p('<TD><font face="arial" size="-1"><SELECT
NAME="P_HEADER_ID" onchange="getRevision(this.form)">');
htp.p('<OPTION VALUE=" "> ');
for r_get_hdr_values in (
select cz.config_hdr_id, cz.config_rev_nbr
from cz_config_hdrs cz
order by cz.config_hdr_id desc
) loop
if v_config_hdr_id = r_get_hdr_values.config_hdr_id then
htp.p('<OPTION SELECTED
VALUE="'||r_get_hdr_values.config_hdr_id||'">'||r_get_hdr_values.
config_hdr_id);
else
htp.p('<OPTION
VALUE="'||r_get_hdr_values.config_hdr_id||'">'||r_get_hdr_values.
config_hdr_id);
end if;
end loop;
htp.p('</SELECT></font>');
htp.p('</TD></TR>');
htp.p('<TR><TD ALIGN="left"><font face="arial"
size="-1">Configuration Revision:</font></TD>');
htp.p('<TD><font face="arial" size="-1"><SELECT
NAME="P_REV_NBR">');
for r_get_rev_values in (
select cz.config_rev_nbr
from cz_config_hdrs cz
where cz.config_hdr_id = v_config_hdr_id
order by cz.config_rev_nbr desc
) loop
htp.p('<OPTION
VALUE="'||r_get_rev_values.config_rev_nbr||'">'||r_get_rev_values
.config_rev_nbr);
end loop;
htp.p('</SELECT></font></TD></TR>');
end;
</ORACLE>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Format:</font></td>
<td><font face="arial" size="-1"><select NAME="DESFORMAT">
<option SELECTED VALUE="RTF">RTF
<option VALUE="PDF">PDF
<option VALUE="HTML">HTML</select></font></td>
</tr>
<tr><td> </td></tr>
<tr>
<td ALIGN=RIGHT><FONT face="arial" size="-1"><input TYPE="SUBMIT"
NAME="Runrep" VALUE="Run Report"
onClick="runReport();"></FONT></td>
<td ALIGN=RIGHT><FONT face="arial" size="-1"><input TYPE="RESET"
NAME="Reset" VALUE="Reset"></FONT></td>
</tr>
</table></td>
<td valign="top"><table BORDER=0 CELLSPACING="2">
<TR><TD COLSPAN="3" ALIGN="LEFT">
<FONT COLOR="#6666CC" FACE="arial,helvetica"
SIZE="-1"><NOBR><B>Report Paremeters (Hidden
Candidates)</B></NOBR></FONT>
</TD></TR>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Userid:</font></td>
<td><font face="arial" size="-1"><select NAME="USERID">
<option SELECTED
VALUE="kreierso/password@DEV11">kreierso/password@DEV11
</select></font></td>
</tr>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Type:</font></td>
<td><font face="arial" size="-1"><select NAME="DESTYPE">
<option SELECTED VALUE="cache">cache
<option VALUE="Printer">printer
<option VALUE="File">file
</select></font></td>
</tr>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Mimetype:</font></td>
<td><font face="arial" size="-1"><select NAME="MIMETYPE">
<option SELECTED VALUE="application/msword">application/msword
</select></font></td>
</tr>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Reports
Server:</font></td>
<td><font face="arial" size="-1"><select NAME="SERVER">
<option SELECTED
VALUE="Rep60_dev11_shane.dci.com">Rep60_dev11_shane.dci.com
</select></font></td>
</tr>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Web Host:</font></td>
<td><font face="arial" size="-1"><select NAME="WEBHOST">
<option SELECTED VALUE="shane.dci.com">shane.dci.com
</select></font></td>
</tr>
<tr>
<td ALIGN=LEFT><font face="arial" size="-1">Web Port:</font></td>
<td><font face="arial" size="-1"><input type=hidden
NAME="WEBPORT" VALUE="7500">7500</font></td>
</tr>
</td></tr></table>
<TR><TD> </TD></TR>
<TR><TD ALIGN="CENTER" COLSPAN="2">
<font face="arial" size="+1" color="#000099">This is currently
being developed.... ~Thanks, Kirk.</font>
</TD></TR>
</table>
</form>
</body>
</html>
Maybe you are looking for
-
How to assign "back to start" function on a button in Bex workbook?
Hi guiys, I want to control fitering funtion with buttons since every object takes time for filtering, I want to set multi objects and multi value in excel sheet and filter them at one with button command. Filtering at ones is OK. the problem is when
-
How to batch add links in contents?
Recenly I purchased an ebook (pdf version) without any bookmarks. It only contains a table of contents showing headings and the corresponding page number. I would like to link the words in contents to that page. I have tried adding the link one by on
-
Having just finished a school musical programme in pages I saved it by going to PRINT as .pdf. No problem and it opened it in preview for me. I took it to the printers and what they did was to open the .pdf in Photoshop. They then "rasterized" it. H
-
Cann't change appete's appearance
I'm using netbeans IDE to build an applet which can work for both sun jvm and microsoft jvm. I copied a simple "Hello world" applet from internet as below and built it in netbean IDE using javac.exe under java1.1. It worked in appletviewer and in IE
-
Domain boot error while installing Peoplesoft
Attempting to boot domain and getting following error as per logs: 013916.SARANSH1!PSADMIN.4468: Begin attempt on domain FS91DMO 014041.SARANSH1!tmadmin.4832.4164.-2: TMADMIN_CAT:1330: INFO: Command: boot -A 014103.SARANSH1!tmboot.5760.6016.-2: 06-01