OWB Mapping populates multiple rows
We have OWB process flow which runs at the interval of 4 hours which calls 7 OWB oracle plsql packages internally.
All these 7 packages have source single table (STG) and single target table (FACT)
out of these 6 interations of the job one job populates the multiple rows.
E.g. Stg count Fact Count
job 1 10 10
job 2 10 10
job 3 10 10
job 4 10 10
job 5 10 10
job 6 10 60
when investigated, we found that the STG table's one month older partition dropped on daily basis and the job timing is just before 6th job.
So we changed the timing from 22:00 to 14:00 , and now job 6 does not populate the multiple rows in to FACT table but now job 4 started to populate multiple rows
E.g. Stg count Fact Count
job 1 10 10
job 2 10 10
job 3 10 10
job 4 10 70
job 5 10 10
job 6 10 10
so we have created one more job which will compile the invalid packages immedialtly after the parition job.
But still it generates duplicates/ multiple rows.
I need to know, why only one or sometimes two generates multiple rows and what is the solution for this ?
The duplicates/(triplicate or more) population is intermittent.
Oracle database : 10.2.0.3.0
Oracle 10g Warehouse Builder Repository : 10.2.0.2.0
Regards,
Viks
Hi,
Thanks for your reply.
I have checked that, there is no cartensian prodoct.
This issue is happening intermittently and only after source table partition purging job.
Thanks,
Vik
Similar Messages
-
Populate multiple rows and columns based off of a single cell
Does anyone know a way to populate multiple rows and columns based off of the input of a single cell. I'm trying to create a workout tracker that auto populates from a master list of workouts. Example, in A2 the user selects the workout from a drop down menu (St1, St2, St3, etc) and the workout is pulled from the master list and is populated into B2:C5.
I'm using =LOOKUP(A2,Master :: A2:A32,Master :: C2:C32) right now, but it's only drawing the top column. I'm looking for an edit for the formula (or completely new formula) that will place the info from the 1st column of the Master table into the 1st column of the Auto Tracker 1 table and then on down until the 4th column.
Here is a screen shot of what I have now:
And an example of what I'd like to accomplish:
Any and all help is appreciated, and please let me know if there is any more info that I can give that'd help out.Hi Mike,
Your screenshots show that you have merged some cells in Column A of both tables. That may be the reason why the LOOKUP function is having trouble working out which range of cells to examine.
Hope this helps.
Regards,
Ian. -
How to extract multiple rows from a query and how to populate it in form.
hi all,
i want to populate multiple rows fetched from a cursor into form.
i write this procedur.
PROCEDURE populate_q (v_t_no IN number) IS
cursor ext_q is
select test_question.no, q_no, text, ans1
from test_question , question
where test_question.no = v_t_no;
BEGIN
for ext_rec in ext_q loop
:take_detail.q_no := ext_rec.q_no;
:take_detail.question := ext_rec.text;
EXIT WHEN ext_q%notfound;
end loop;
END;
and call this WHEN-NEW-BLOCK-INSTANCE trigger.
this don't return all the rows only the lost one is populated
and shown in form.
thanks
Muhammad Nadeem
Mardan (pakistan)
[email protected]Hi,
look for the next_record built-in. Your cusror only addresses the current row, but you want to create new rows as you go
Frank -
Multiple row selection in Table
Hi Experts,
I have created one popup with a table inside that.
My question is how can i add multiple rows, enter value in those rows and on clicking the
copy button all the value in the rows will be copied into the main view.
All the rows should be editable.Hi Armin,
Thanks a lot for the reply.
In my application when i am selecting the multiple rows which i entered earlier in the popup window, it's getting populated into main window.
But in main window only one input field is there,so only the fiest record is getting displyed after selection.
Rest of the records i am not able to display in the main window.And the problem is i can't add more than one input field in main window. Rest of the values will be passed into R3 through coding but it can't be displayed on screen.
So please advice me on these two scenarios.
1 . How to populate multiple row values(input fields in popup window with value enterd by user) into
main view. In main view only one input field is there.
2 . How to pass all the selected values from main window to R3 by webdynpro coding.
All the values coming from popup need to be passed even though only one value is displayed.
Here the input field in main window is mapped to one model attrribute.
Thanks a lot. -
Rows to columns in owb mapping
Hi,
I have a transformation operator in my OWB mapping where in a sequence value is generated. The sequence value is populated into two target tables.
Now my code populates the below value 10 to two target tables which was generted by my transformation operator .
KEY VALUE
1 10
Now my requirement changed in such a way that based the key i need to generate multiple values
i.e the output from transformation operator is
Key Value1 Value2
2 10 11
This should be populated in my target tables as
Key Value
2 10
2 11
Please explain me how can I implement in my owb mapping.
Many thanks in advance,
YeswanthKey is 1 and value that was generated by sequence is 10.
in my target table both the key and the value 10 are loading now.
After the change my target table should have
1 10
1 11
The 10 and 11 are generated from the transformation operator.
Note: Key here is not primary key nor unique. -
SQL Query of an OWB map (row based)
If I trace a session, execute an OWB map (row based), will the trace file contain the actual SQL query ?
The problem with me is that when I am executing this row -based OWB map, it is throwing me an error CursorFetchMapTerminationRTV20007 BUT ( plus taking a long time) when I am taking out the intermediate SQL insert query,it is working fine ( and also within a very short period of time)
Execution status = COMPLETE
message text = ORA-06502: PL/SQL: numeric or value error: character string buffer too small
message text = CursorFetchMapTerminationRTV20007
No. task errors = 0
No. task warnings = 2
No. errors = 1
Since this OWB map (Truncate Insert) is row based hence I cannot cannot get the back end query from the OWB generated pl/sql package so wondering if I trace the session, check the trace file, may be I will able to see the exact SQL query generated. But wanted to confirm the same.Yes, the actual SQL run in the session will be in the trace file.
-
Row movement Disabled at DB- creating problems in OWB mapping
Hi All,
We have a OWB mapping 'XXXXX' with Default operating mode set to 'setbased-failover to rowbased' mode.The generation mode is set to 'Row Based'.This is called in a processFlow 'YYY'
This was running fine until sometime ago.
Recently at the database row movement on tables was disabled.
After this the 'YYYY' fails with a 'Warning:ORA-01403: no data found' when it calls 'XXXXX'.
Any idea on what this means.Is it something to do with the row movement disablin done recently?
Is the default operating mode and generation mode combination selected by us valid.
Please provide any inputs /queries by which we can trace the exact problem.
Many Thanks!!
BRgds
SridhaI don't think that issue will be with OWB.
take generated code and run in directly in database and check are you getting the same error.
Cheers
Nawneet -
Splitting comma seperated column data into multiple rows
Hi Gurus,
Please help me for solving below scenario. I have multiple value in single column with comma seperated values and my requirement is load that data into multiple rows.
Below is the example:
Source Data:
Product Size Stock
ABC X,XL,XXL,M,L,S 1,2,3,4,5,6
Target Data:
Product Size Stock
ABC X 1
ABC XL 2
ABC XXL 3
ABC M 4
ABC L 5
ABC S 6
Which transformation we need to use for getting this output?
Thanks in advance !Hello,
Do you need to do this tranformation through OWB mapping only? And can you please tell what type of source you are using? Is it a flat file or a table?
Thanks -
Problem in OWB map for source change capture
The problem is as follows:-
Our OWB map between two different databases, captures change in data at source and populates them in target. It is a one to one map. The map is failing to process some rows from source database though it gives no:of errors as 0 in the audit view thus we infer that the map is running successfully.
In our case, we have a composite key ( Instance_id, Version_number) at source as well as target. One instance_id can has more than one version number. We have observed that the view is picking up all the version_number for a particular instance_id but the map is unable to populate the last version_number to the target table.
But when this map was executed in another environment and it is successfully populating all the data in the target.
The brief description of the map is as follows:-
The map has a view which captures all the changes in data (insert and update) .From this view we filter the rows which were already processed in previous map run (with help of watermark). Then we sort the rows based on DML type and watermark . These rows are then mapped to a target table. The loading type of the map is INSERT/UPDATE.Hi Nagesh,
When we are doing I18N for that Application. Go to Navigator Tab
Here Select Particular Projects--à src-àPackages-àsap-àvijay
To internationalize the Web Dynpro application, copy the automatically generated *.xlf files and save them under a new name in the same directory.
The new name must meet the following convention:
u2022 .xlf
For example, if you are creating *.xlf files for German,
Use the language key de.
Here Click on OK
After that we can edit and translate these new *.xlf files in the S2X Editor.
ApplyTemFirstView.wdview_de.xlf-àClick on Resource Text Tab
Select Particular Text and Change the language to German-àClick on EDIT Button
Here Enter German Lang-àClick on OK
Now Go to Web Dynpro Explorer Tab
Select Project-àRC Click on Rebuild Project
Select Project-àRC Click on Reload
Then Deploye the Application
How to Check in Explorer. It is converting to German Language or not
Open Internet Explorer
Tool-àInternet Options -àClick on Languages Button-àClick on ADD Button
Select German Language--àClick on OK
Now We will Check in Portal
Created Web Dynpro iView in Portal. That iView assign to the particular WorkSet-àAssign to Role
Select that user Can Change Language
Regards
Vijay Kalluri -
Problem in mapping with multiple values
Hi all,
I am facing a problem during mapping. I am explainning the problem with a example.
Suppose i have a source table named Employee which has two columns emp no and account no. I have a target table Emp_account which has also the same columns.
One employee may have more than one accounts. In source table this account nos are stored in account no column in one row corresponding to emp no. The multiple values in account no are separated by comma for one record in source table.
But in the target table Emp_account a single record will be inserted for each employee's separate account. There should not be multiple values separated by comma in account no column of target table.
So if any employee has two accounts this will be stored as one row in source table but in target table it will divided into two different rows for each account.
EMPLOYEE(Source)
emp no account no
10 101, 102
EMP_ACCOUNT(Target)
emp no account no
10 101
10 102
Think I explained the requirement.. How can i made this in OWB mapping editor..Is it possible?...Can any operator perform this task...If any of u know about this plzz give some solution..It's very important ..
Thanks & Regards,
Sumanta DasHi,
With reference to your question.
Can any operator perform this task..I don't think any single operator will help you.
I suggest using an intermediate (staging) table by using a PL SQL procedure with output port to store the values of account number provided the number of accounts are limited. Else use an array variable for account of an employee.
In short no simple solution because of the bad source design else the pivot/unpivot operator would have helped you.
Cheers
- Mohammed -
Best Practive - One mapping reading multiple source files
I want to develop a solution for one single mapping reading multiple similar source files that are stored on different directories on my OWB server. I want to be able to determine on runtime of my mapping from what location to load the source file from.
Example:
Mapping: Load_test_data
source file 1: c:\input\loc1\test.dat
source file 1: c:\input\loc2\test.dat
When I run the mapping I would like to use an input parameter specifying the location loc1 or loc2. I would also like to use this input parameter in my mapping to populate one column in my target table with the value of this input parameter. This design would make it possible to dynamically load source files from different directories and also being able to see after loading where the data came from.
Questions:
- Is there a way to create such a design
- If not, what alternative would be appropriate.
Thanks in advance for the feedbackThanks for the feedback. Unfortunately I do not use workflow together with my OWB.
I now indeed specified the file name and file location in the configuration of my mapping. However I am not able to change then upon executing the mapping. Data file name and file location are empty and greyed out when I execute my mapping. It always takes the values I specified in the configuration of my mapping
What I would like to do is specify the location upon runtime when I execute my mapping, but I don't know if this is possible. In addition I'd also want to use the data file location as an input parameter for one of the columns I populated in my target table.
Then in the end I would be able to use one mapping and read multiple sources files from different locations and also be able to check in the end where the data was loaded from.
Hope you can give me some more feedback on how to set this up in OWB.
Many Thanks!
data file name parameter to ma -
Query for Multiple Rows as XML
Ok I've seen this topic in the forums, but have failed to get this to work within my process. Basically I have a process that has a user fill out a form, and upon submittal the form writes it's information to a database (via a data connection within the form that invokes a separate process upon submittal.), once this is done the main process is invoked and it's first step is to query that same database and bring back the data in a lower (now exposed) portion of the form that contains certain fields that track the issue history. The query brings back the xml document and I store it in an xml variable (xml_output). I then take this information and use the Set Value object to assign the returned nodes values to the location fields in the form. This works if the query returns only one row. But once the form is moved beyond the initial Task Assignment, (first user), and query returns more than just one row, the added nodes to not show up on the form, i.e I still just get information about the first row in my form. From what I've read the form should be able to recognize the xpath expression, and bring back all the nodes, by in a sense using instance manager to create an instance for each node on the form. My question is how can I get this to work. Jasmin if your still out there... Help!
Also We're using Adobe LiveCycle ES 8.0
created the process using Workbench
the form was reader enabled and saved as a dynamic PDF.
Thanks
MikeOk have done the binding of the schema to the form, and I'm getting the information to flow as it's supposed to. The problem I'm having now, (I know I'm having a bunch.) is that once I've placed the form into my process, and I use the set value operation to pre-fill information I get the form to flow, but the rest of the information that was previously filled in is blank. So I have checked the variable and nothing wrong there. It appears the problem is how I'm using the set value operation. If I don't use the set value operation, the form retains it's information. And if I use the set value by trying to set the subform value, the form retains it's information, but no pre-fill. I'm going to try to be a little more detailed here. The xml that is returned looks like this:
0016-03-30
Mike
Public Works
alone in the dark
Type sleep
-1
Council
FYI
Important
Flowed and positioned are actual subforms on the form that have their properties set as their names indicates. The entire path is /form1/Page1/flowed/positioned . The way I was able to get the form to flow correctly upon the injection of this xml data, was to bind the subforms in the form in this manner, positioned[*]. Designer didn't place the [*] for me so I had to do this myself. But once I previewed the document, the form pre-populated and created the necessary number of subforms and placed information into the fields correctly.
Now on the process side, I have created an xfaform variable that stores the form (bound to xsd.) information, and another xml variable that stores the query return that looks like the xml listed above (has an xsd associated with it for navigating xpath). My first operation performs the query (JDBC- Query Multiple Rows as XML) and stores it into the xml variable. The next step of the process is the Set Value operation which is supposed to inject the xml data retrieved from the query into the form. Initially I tried the an xpath similar to the following:
/process_data/object/data/form1/page1/flowed/positioned = /xml_data/flowed/positioned.
No dice. On this one the form retains the information filled out by the user (didn't explain this earlier, the form is filled out first, and upon submittal the process starts.), but doesn't pre-populate the bottom part of the form. Next I tried the following xpath:
/process_data/object/data/form1/page1/flowed = /xml_data/flowed/positioned.
This time it retained the form information which was filed in by the user, but the bottom part is becomes hidden! Didn't understand this. But I started to kinda think that I had to navigate he xpath in order to correctly inject the xml into the form. That being said my next attempt was:
/process_data/object/data/form1/page1 = /xml_data
My thinking was that if on location, I stop at page1, the xml in the variable will allow it to navigate correctly through the form. Well it worked, but too well. The top part of the form is blank, but the bottom portion is pre-populated correctly. Now I'm stuck. Not sure how to get the rest of the information in the form. I thought about creating variables form each of the fields and then re-populating them after the injection of xml, but that didn't seem practical. I'm almost positive it's something I'm not doing correctly with xpath. Anyway, thanks for all your help on this.
Mike -
How to select multiple rows from List Of Values
Hello,
I use ADF 11g to create my list of values (LOV). I want to select multiple rows from it. but i can't.
so how i can select many rows to set them in my adf table.
Thank in advanceHi,
LOV is map to an attribute in the viewObject so it will return only one value or more values from selected row. You can't select multiple rows from LOV.
But you can do this by using popup which you can select multiple rows and insert the selected rows to another table.
This blog post explain how to achieve this :
http://husaindalal.blogspot.com/2009/11/search-from-popup-and-add-to-new-table.html#comments
Sameh Nassar -
Question:
There is a scenario that users want to send multiple rows returned by Execute SQL Task as Email content to send to someone. With Execute SQL Task, the Full result set is used when the query returns multiple rows, it must map to a variable of the Object data
type, then the return result is a rowset object, so we cannot directly send the result variable as Email content. Is there a way that we can extract the table row values that are stored in the Object variable as Email content to send to someone?
Answer:
To achieve this requirement, we can use a Foreach Loop container to extract the table row values that are stored in the Object variable into package variables, then use a Script Task to write the data stored in packages variables to a variable, and then set
the variable as MessageSource in the Send Mail Task.
Add four variables in the package as below:
Double-click the Execute SQL Task to open the Execute SQL Task Editor, then change the ResultSet property to “Full result set”. Assuming that the SQL Statement like below:
SELECT Category, CntRecords
FROM [table_name]
In the Result Set pane, add a result like below (please note that we must use 0 as the result set name when the result set type is Full result set):
Drag a Foreach Loop Container connects to the Execute SQL Task.
Double-click the Foreach Loop Container to open the Foreach Loop Editor, in the Collection tab, change the Enumerator to Foreach ADO Enumerator, then select User:result as ADO object source variable.
Click the Variable Mappings pane, add two Variables as below:
Drag a Script Task within the Foreach Loop Container.
The C# code that can be used only in SSIS 2008 and above in Script Task as below:
public void Main()
// TODO: Add your code here
Variables varCollection = null;
string message = string.Empty;
Dts.VariableDispenser.LockForWrite("User::Message");
Dts.VariableDispenser.LockForWrite("User::Category");
Dts.VariableDispenser.LockForWrite("User::CntRecords");
Dts.VariableDispenser.GetVariables(ref varCollection);
//Format the query result with tab delimiters
message = string.Format("{0}\t{1}\n",
varCollection["User::Category"].Value,
varCollection["User::CntRecords"].Value
varCollection["User::Message"].Value = varCollection["User::Message"].Value + message;
Dts.TaskResult = (int)ScriptResults.Success;
The VB code that can be used only in SSIS 2005 and above in Script Task as below, please note that in SSIS 2005, we should
change PrecompileScriptIntoBinaryCode property to False and Run64BitRuntime property to False
Public Sub Main()
' Add your code here
Dim varCollection As Variables = Nothing
Dim message As String = String.Empty
Dts.VariableDispenser.LockForWrite("User::Message")
Dts.VariableDispenser.LockForWrite("User::Category")
Dts.VariableDispenser.LockForWrite("User::CntRecords")
Dts.VariableDispenser.GetVariables(varCollection)
'Format the query result with tab delimiters
message = String.Format("{0}" & vbTab & "{1}" & vbLf, varCollection("User::Category").Value, varCollection("User::CntRecords").Value)
varCollection("User::Message").Value = DirectCast(varCollection("User::Message").Value,String) + message
Dts.TaskResult = ScriptResults.Success
End Sub
Drag Send Mail Task to Control Flow pane and connect it to Foreach Loop Container.
Double-click the Send Mail Task to specify the appropriate settings, then in the Expressions tab, use the Message variable as the MessageSource Property as below:
The final design surface like below:
References:
Result Sets in the Execute SQL Task
Applies to:
Integration Services 2005
Integration Services 2008
Integration Services 2008 R2
Integration Services 2012
Integration Services 2014
Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.Thanks,
Is this a supported scenario, or does it use unsupported features?
For example, can we call exec [ReportServer].dbo.AddEvent @EventType='TimedSubscription', @EventData='b64ce7ec-d598-45cd-bbc2-ea202e0c129d'
in a supported way?
Thanks! Josh -
I need your expert opinion on how to create a map with multiple conditions.
Hello.
I need your expert opinion on how to create a map with multiple conditions.
I have a procedure (which i cannot import or re-create in OWB due to the bug), so i am trying to create a map instead :-(
How can i create a cursors within the map?
My function creates table and cursor.
Then it will have to check for duplicates in the tables (the one created and another table) - the criteria for finding duplicates is a number of fields.I then need to place few different conditions (if some attributes are not available) and it has to load cursor based on this conditions. The next step is to fetch the data into the cursor based on what attributes are missing.
The next thing it will do is insert the data into table (if record doesn't exist), output the error in separate table is record is corrupted, or update the record with changed information.
In short i need to re-create match / merge but with conditions, iterations etc 'built into' it.
I can read up on available functions - it's just what would be the best options? and what would be the best approach to do so?
In my function i use %rowtype - but cannot use it in owb - so what would be the alternative? i don't really want to create a lot of variables and then have a nightmare of maintaing it. are there any tips regarding this?
having looked through Oracle dedupe - it's not really what i need because it is just DISTINCT.
I would appreciate any help / advise on this.
Thank you very muchthanks a lot for your reply - i will look into this option :-)
it is a bit more complicated now as i have to re-create the match / merge and then somehow 'tweak' it to achieve the result i need.
At the moment i am looking to breakdown the package into smaller chunks 'functions' and try creating the map that way.
Anyway, thank you very much for your suggestion.
Maybe you are looking for
-
Multiple instances of weblogic server 6.1 running on the same machine
Hi, I need to run two instances of weblogic server 6.1 running on the same machine. I need one for development and the other one running the live applications. I need two instances to be independent of each other. I am running weblogic server as an N
-
Hi All, Greetings, Oracle 8.0.6 SunSolaris My Rollbacksegment Tablespace datafile size is 1640 MB but the actual used space is 217 MB. is there any way to compress the size of 1640MB Please Help me in this Thanks in Advance Adil
-
Inbound IDOC FINSTA01 status Change
Hi, Actually we are posting in bound idco for lockbox using Idoc Finsta01,Depending on the header and item amount ,ie if both are not equal need to post the idoc with 64 status with custome message. Any User Exit ? Thanks, Madhu
-
Have grey marks on the imac monitor
i have a 27in quad core i5 imac and have grey blotches in lines at the top right of my screen just above the dvd access only 9 months old
-
Can't start WLS after change of JDK
I changed JDK from 131 to 140 and the server won't even start....pls let me know what I need to change in the cmd file. Thanks. W