Need help in creating Knowledge module to aggregrate source data.
Hi Guys,
I am new to ODI and I am trying to create a Knowledge module. I went through the docs relating to Knowledge modules and APIs, so hopefully did my home work, I still find writing KM to be very challenging for the scenario, I have.
The following is my scenario.
I have two tables Employee and Department. Employee is the source and Department is the target. I need to sum salaries of all the employees belonging to a given department. And then insert the data into Department table.
Structure of the tables is as follows:
Employee(Source Table name)
Employee_id
Salary
Dept_id
Department(Target table name)
id
total_salary
Both target and source are on the same server. The user of this KM would drag and drop both source and target tables into interface and then map the columns. In the above case, Dept_id to id and salary to total_salary and then use this IKM. And off-course the user would indicate what columns would be aggregated on and what would be used as group by. One way to tag that, would be to use those UD1,UD2 tags in target column properties. (If there is another way to tag a column to indicate a column to be used for aggregation and a given column to be used in group by during run time in source, please let me know)
I choose to write IKM for this.
The challenging part is that I am having hard time figuring out the columns of source table as to what column should be used as group by and what column to be aggregated on. Since the tags are defined on Target columns and not on source columns. So have to figure out the appropriate columns through the mapping at run time.
The following is what I am planning to write in (Insert new rows ) command. And the part where I need help is how to compose select statement.
iinsert into <%=odiRef.getTable("L","TARG_NAME","A")%>
<%=odiRef.getColList("", "[COL_NAME]", ",\n\t", "", "((INS and !TRG) and REW)")%>
<%=odiRef.getColList(",", "[COL_NAME]", ",\n\t", "", "((INS and TRG) and REW)")%>
Select
source.column1,sum(source.column2) from <%=odiRef.getFrom()%> GROUP BY source.column1
Thanks.
I did try as per your advise.
Filter is not making a difference. Irrespective of me adding a filter or not, ODI generates a sql that has GROUP BY , just by looking at SUM(SALARY).
Coming back to the main issue, this does do what I wanted to do. I was planning on using a custom KM. But I guess, this is as good as custom KM, since the work done in an interface (assuming a custom KM exists) by going through either route is the same, so I can live with this approach.
Thanks for the help.
Similar Messages
-
Need Help in Creating adapter module for SFTP Sender in NWDS
Hi experts,
I have a scenario where i should write an adapter module for SFTP sender in NWDS.. need your help in achieving this..Hello,
>>i have followed the procedure of FTP but, adapter is not picking the file
Make sure u have written proper expression to pick file.
>>do we have any different adapter parameters for SFTP... the input file is .csv..
I don't think there are any specific parameters needed for SFTP (but in case u are reading file name in AM then u might have to adjust SFTP namespace)
Thanks
Amit Srivastava -
Need help in creating Buttons in ADF10g
Hi,
My questions are:
1. Is it possible to modify the width of row in ADF10g. Because the width of rows in my output are high. So I want to reduce it.
2. I need help in creating a new 'createbutton' to create a newlist for the table . for this I have used create button but didnot succed.
3. I also need help in creating 'save button' to save modified data into the table.
4. I need help in creating a select-one-choice and select-one-list for columns of table.
Please help me.
regards,
sanjana
sanjanathe Easy Tabs could be useful for your requirement
http://usermanagedsolutions.com/SharePoint-User-Toolkit/Pages/Easy-Tabs-v5.aspx
/blog
twttr @esjord -
Need Help to create new screen for RF Sapconsole
Hi Guru's
I'm new on RF (but some years in ABAP) since last week.
I need help to create new screens for RF (SAPLLMOB).
Can someone explain me the procedure to create screen (with ABAP code after) or perhaps someone have an exemple (simple or not) ?
I have to develop 2 new screens with really few time.
And, another subsidiary question :
how SAP can transfert information between the flash gun and the screen i have developped.
Is there some code to add to enable this functionality or it is include in SAPLLMOB on standard fields ????
It's a new strange world for me today...
Many thanks to everyone who can explain me
Alainhi,
I am facing this problem as well. Is there any reference to create the new screen?
Hope someone can help! Thanks!
Regards,
Darren -
Need help in creating a chart from 3 datasets
Need help in creating a chart in SSRS from 3 datasets
Can someone help me in creating a chart from 3 datasets, however datasource is same.Thank you Olaf...
could anyone help me in using union all with the below
WITH a AS (
SELECT
clientid,
DATEPART(year, row_date) AS 'Year',
DATEPART(month, row_date) AS 'Month',
value ,
CASE metricid WHEN 16 THEN 'FCR' ELSE 'Cases' END AS metric
FROM XXXXXX AS V
WHERE metricid IN (16, 11)
AND row_date BETWEEN '2012-01-01' AND '2014-10-01'
AND value IS NOT NULL)
, b AS (
SELECT clientid ,
Year ,
Month ,
value AS 'Cases',
metric
FROM a
WHERE metric = 'cases')
, c AS (
SELECT clientid ,
Year ,
Month ,
value AS 'FCR',
metric
FROM a
WHERE metric = 'FCR')
, d AS (
SELECT b.YEAR, b.MONTH, c.FCR, b.Cases
FROM b INNER JOIN c
ON c.clientid = b.clientid
AND c.[YEAR] = b.[year]
AND c.[month] = b.[month]
WHERE c.fcr <> 0 AND b.cases <> 0
,E AS (
SELECT [Year], [Month], SUM(FCR) AS FCR, SUM(Cases) AS Cases
FROM d
GROUP BY [Year], [Month])
select YEAR, MONTH,
CASE MONTH
WHEN 1 THEN 'Jan'
WHEN 2 THEN 'Feb'
WHEN 3 THEN 'Mar'
WHEN 4 THEN 'Apr'
WHEN 5 THEN 'May'
WHEN 6 THEN 'Jun'
WHEN 7 THEN 'Jul'
WHEN 8 THEN 'Aug'
WHEN 9 THEN 'Sep'
WHEN 10 THEN 'Oct'
WHEN 11 THEN 'Nov'
WHEN 12 THEN 'Dec'
END AS MonthName
,e.FCR AS FCRCases
,e.Cases AS TotalCases
,CASE
WHEN [month] IN (11, 12, 1) THEN 1
WHEN [month] IN (2, 3, 4) THEN 2
WHEN [month] IN (5, 6, 7) THEN 3
WHEN [month] IN (8, 9, 10) THEN 4
END AS 'Quarter'
--,CONVERT(DECIMAL(18, 2),(e.FCR/e.Cases)*100) AS FCRRaw
from e
order by YEAR, MONTH
**************2nd query*************
WITH a AS (
SELECT
clientid,
DATEPART(year, row_date) AS 'Year',
DATEPART(month, row_date) AS 'Month',
value,
CASE metricid WHEN 56 THEN 'numerator' ELSE 'denominator' END AS metric
FROM XXXXXXX.[Values] AS V
WHERE metricid IN (56, 10)
--WHERE metricid IN (11,16)
AND row_date BETWEEN '2013-10-01' AND '2014-02-01'
AND value IS NOT NULL)
, b AS (
SELECT clientid ,
Year ,
Month ,
value AS 'numerator',
metric
FROM a
WHERE metric = 'numerator')
, c AS (
SELECT clientid ,
Year ,
Month ,
value AS 'denominator',
metric
FROM a
WHERE metric = 'denominator')
, d AS (
SELECT b.YEAR, b.MONTH, c.denominator, b.numerator
FROM b INNER JOIN c
ON c.clientid = b.clientid
AND c.[YEAR] = b.[year]
AND c.[month] = b.[month]
WHERE c.denominator <> 0 AND b.numerator <> 0
, e AS (
SELECT [Year], [Month], SUM(numerator) AS numerator, SUM(denominator) AS denominator
FROM d
GROUP BY [Year], [Month]
SELECT *,
CASE
WHEN [month] IN (11, 12, 1) THEN 1
WHEN [month] IN (2, 3, 4) THEN 2
WHEN [month] IN (5, 6, 7) THEN 3
WHEN [month] IN (8, 9, 10) THEN 4
END AS 'Quarter'
FROM e
ORDER BY 1,2
******************3rd query**************
WITH a AS (
SELECT --L.[LocationGroupId],
-- T.locationid,
-- T.AccountId,
TR.datestamp,
/*Convert(NVARCHAR, DatePArt(year, TR.datestamp)) + '-' + Convert(NVARCHAR, DatePArt(month, TR.datestamp)) + '-01'*/
TR.Period AS ValueDate,
CASE WHEN TR.TargetResultState = 0 THEN 0 WHEN TR.TargetResultState = 1 THEN 1 WHEN TR.TargetResultState = 2 THEN 1 ELSE 0 END AS Met,
CASE WHEN CONVERT(DATE, Convert(NVARCHAR, DatePArt(year, TR.datestamp)) + '-' + Convert(NVARCHAR, DatePArt(month, TR.datestamp)) + '-01') > T.Startdate AND CONVERT(DATE, Convert(NVARCHAR, DatePArt(year, TR.datestamp))
+ '-' + Convert(NVARCHAR, DatePArt(month, TR.datestamp)) + '-01') < T.Enddate THEN 1 ELSE 0 END AS ActiveTarget
FROM XXXXXX AS TR
INNER JOIN dbo.Target T ON TR.TargetID = T.ID
--INNER JOIN dbo.Location L ON T.Locationid = L.Id
WHERE --locationid <> - 1 AND
TR.Period IN ('201306', '201307', '201308', '201309', '201310', '201311', '201312', '201401'))
select ValueDate, SUM(Met) AS Met, Count(ActiveTarget) AS ActiveTargets,
right(ValueDate,2) as Month
,left(ValueDate,4) as Year
,CASE
WHEN right(ValueDate,2) IN (11, 12, 1) THEN 1
WHEN right(ValueDate,2) IN (2, 3, 4) THEN 2
WHEN right(ValueDate,2) IN (5, 6, 7) THEN 3
WHEN right(ValueDate,2) IN (8, 9, 10) THEN 4
END AS 'Quarter'
from a
group by ValueDate
order by ValueDate -
Need help to create report with jpeg/gif image
Hello,
I need help with creating a form with a special jpeg/gif seal. I never done this Java. Until now, I created all forms with ansi C++ with HP escape characters to draw lines, boxs, and text. This form will contain boxes which is populated with database information read from a text file.
Since this form contains a special seal on the upper right, I don't think it can be done with old fashion ansi C++. How can I create a form with Java and create it as a simple exe to just print the form to a specified printer.
Thanks,
JohnHi,
I am creating a form with boxes (lines and text). What is special about this form is that it has an image jpeg or gif at the top right corner. Is is a state department seal. Up to this form, I had used ansi C++ and print out escape HP character to print out the lines, boxes, and text. I have no idea how to print out the image. I am new to JAVA and only 1 class in it. Is there sample code out there to create this type of form with the image? I need a starting point.
Thanks,
John -
I need help with Creating Key Pairs
Hello,
I need help with Creating Key Pairs, I generate key pais with aba provider, but the keys generated are not base 64.
the class is :
import java.io.*;
import java.math.BigInteger;
import java.security.*;
import java.security.spec.*;
import java.security.interfaces.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import au.net.aba.crypto.provider.ABAProvider;
class CreateKeyPairs {
private static KeyPair keyPair;
private static KeyPairGenerator pairGenerator;
private static PrivateKey privateKey;
private static PublicKey publicKey;
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.out.println("Usage: java CreateKeyParis public_key_file_name privete_key_file_name");
return;
createKeys();
saveKey(args[0],publicKey);
saveKey(args[1],privateKey);
private static void createKeys() throws Exception {
Security.addProvider(new ABAProvider());
pairGenerator = KeyPairGenerator.getInstance("RSA","ABA");
pairGenerator.initialize(1024, new SecureRandom());
keyPair = pairGenerator.generateKeyPair();
privateKey = keyPair.getPrivate();
publicKey = keyPair.getPublic();
private synchronized static void saveKey(String filename,PrivateKey key) throws Exception {
ObjectOutputStream out= new ObjectOutputStream(new FileOutputStream(filename));
out.writeObject(key);
out.close();
private synchronized static void saveKey(String filename,PublicKey key) throws Exception {
ObjectOutputStream out= new ObjectOutputStream( new FileOutputStream(filename));
out.writeObject(key);
out.close();
the public key is:
�� sr com.sun.rsajca.JSA_RSAPublicKeyrC��� xr com.sun.rsajca.JS_PublicKey~5< ~��% L thePublicKeyt Lcom/sun/rsasign/p;xpsr com.sun.rsasign.anm����9�[ [ at [B[ bq ~ xr com.sun.rsasign.p��(!g�� L at Ljava/lang/String;[ bt [Ljava/lang/String;xr com.sun.rsasign.c�"dyU�| xpt Javaur [Ljava.lang.String;��V��{G xp q ~ ur [B���T� xp ��ccR}o���[!#I����lo������
����^"`8�|���Z>������&
d ����"B��
^5���a����jw9�����D���D�)�*3/h��7�|��I�d�$�4f�8_�|���yuq ~
How i can generated the key pairs in base 64 or binary????
Thanxs for help me
Luis Navarro Nu�ez
Santiago.
Chile.
South America.I don't use ABA but BouncyCastle
this could help you :
try
java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
java.security.KeyPairGenerator kg = java.security.KeyPairGenerator.getInstance("RSA","BC");
java.security.KeyPair kp = kg.generateKeyPair();
java.security.Key pub = kp.getPublic();
java.security.Key pri = kp.getPrivate();
System.out.println("pub: " + pub);
System.out.println("pri: " + pri);
byte[] pub_e = pub.getEncoded();
byte[] pri_e = pri.getEncoded();
java.io.PrintWriter o;
java.io.DataInputStream i;
java.io.File f;
o = new java.io.PrintWriter(new java.io.FileOutputStream("d:/pub64"));
o.println(new sun.misc.BASE64Encoder().encode(pub_e));
o.close();
o = new java.io.PrintWriter(new java.io.FileOutputStream("d:/pri64"));
o.println(new sun.misc.BASE64Encoder().encode(pri_e));
o.close();
java.io.BufferedReader br = new java.io.BufferedReader(new java.io.FileReader("d:/pub64"));
StringBuffer keyBase64 = new StringBuffer();
String line = br.readLine ();
while(line != null)
keyBase64.append (line);
line = br.readLine ();
byte [] pubBytes = new sun.misc.BASE64Decoder().decodeBuffer(keyBase64.toString ());
br = new java.io.BufferedReader(new java.io.FileReader("d:/pri64"));
keyBase64 = new StringBuffer();
line = br.readLine ();
while(line != null)
keyBase64.append (line);
line = br.readLine ();
byte [] priBytes = new sun.misc.BASE64Decoder().decodeBuffer(keyBase64.toString ());
java.security.KeyFactory kf = java.security.KeyFactory.getInstance("RSA","BC");
java.security.Key pubKey = kf.generatePublic(new java.security.spec.X509EncodedKeySpec(pubBytes));
System.out.println("pub: " + pubKey);
java.security.Key priKey = kf.generatePrivate(new java.security.spec.PKCS8EncodedKeySpec(priBytes));
System.out.println("pri: " + priKey);
catch(Exception e)
e.printStackTrace ();
} -
Hi everyone,
i'm fairly new to RAID scene and i need help for creating RAID 5 with 8 disk's.
I have HP ProLiant DL380 G6 with 8 disk's, each 500 GB.
i'm trying to create RAID 5 and to have one spare disk. I have made array from 7 disk and then create logical drive.
the last disk (8-th) i used as spare.
up to now i think i'm ok???
what confuse me is:
7 HDD X 500GB= 3500GB
after creating array i get 3200 GB, where i lose 300 GB??
after creating logical drive i get 2700 GB, where i lose 500 GB???
from 2700GB i give 150GB for system partition and for data storage i have only 2550 GB.
Why i lose 800GB??
Can someone explain me how RAID 5 works, do i create it correctly and why i lose so much space???
Is there other way to create RAID 5 without losing so much space?
Thanks you in advnce.The first 'loss' you encounter (300MB) is due to megabyte counting/rounding. A 500GB disk contains about 500.000.000 bytes. This quite a bit less than if counted properly using binary. you loose about 24288000 bytes per disk this way!
http://en.wikipedia.org/wiki/Mibibyte |
http://en.wikipedia.org/wiki/Megabyte
the second loss is due to how raid works.in raid 5 data is written to multiple disks to improve reliability. the simplies t form uses 3 disks: a write will cause half of the data to be written to disk 1, half to disk 2 and the XOR of both datahalfs to disk
3. In this scenario you will loose 33% of storage space and you can loose up to one of 3 disks.
By adding more disks, data can be spread more and the ratio available/raw will increase, or you can write aditionnal crc data and increase resliency for failures.
http://en.wikipedia.org/wiki/RAID
To check the exact algoritmes using on you RAID adapter, I would recommend contacting the vendor (or checking their support site) From your numbres, I do not think you will be able to configure RAID 5 on the same disks and having more available
space for your data.
MCP/MCSA/MCTS/MCITP -
Need help in creating multiple signature forms?
need help in creating multiple signature forms that can be digitally signed in adobe reader
Automator gets a bit unweildy when trying to vary things outside of what the actions provide. Since you are already using an AppeScript in your workflow, might as well do the whole thing:
set baseFolder to (path to desktop) -- the location to create the folder
display dialog "Please provide a new folder name:" default answer "test"
set folderName to text returned of the result
repeat -- keep repeating until a number is returned
display dialog "How many subfolders?" default answer "5"
set theNumber to text returned of the result
try -- test the result
set theNumber to theNumber as integer
exit repeat -- success
end try
end repeat
tell application "Finder"
try -- make new folder
set newFolder to (make new folder at baseFolder with properties {name:folderName})
on error number -48 -- skip errors if the folder is already there
set newFolder to ((baseFolder as text) & folderName) as alias
end try
repeat with X from 1 to theNumber
try -- make new subfolder
make new folder at newFolder with properties {name:folderName & X}
on error number -48 -- skip errors if the folder is already there
end try
end repeat
end tell -
Need help in creating tabbed webpart in sharepoint and no of tabs in webpart should be dynamic.
under each tab i should be able to add multiple webparts(each tab will have webpart zone)
programatically i need to generate tabs and insert webpart zones under each tab.
Let me know how can i achieve this.
i followed below article.
http://msdn.microsoft.com/en-us/library/jj573263%28v=office.14%29.aspx
but in this article the tabs and webparts are static and we need to close each webpart .
Kindly let me know the approach.thanks in advancethe Easy Tabs could be useful for your requirement
http://usermanagedsolutions.com/SharePoint-User-Toolkit/Pages/Easy-Tabs-v5.aspx
/blog
twttr @esjord -
Need help for creat apple id in iphone 5s
need help for creat apple id in iphone 5s
See this support document for instructions. http://support.apple.com/kb/HT2731
-
I need help with creating PDF with Preview...
Hello
I need help with creating PDF documetns with Preview. Just a few days ago, I was able to create PDF files composed of scanned images (notes) and everything worked perfectly fine. However, today I was having trouble with it. I scanned my notebook and saved 8 images/pages in jpeg format. I did the usual routine with Preview (select all files>print>PDF>save as PDF>then save). Well this worked a few days ago, but when I tried it today, I was able to save it, but the after opening the PDF file that I have saved, only the first page was there. The other pages weren't included. I really don't see anything wrong with what I'm doing. I really need help. Any help would be greatly appreciated.I can't find it. I went into advanced and then document processing but no batch sequence is there and everything is grayed out.
EDIT: I realized that you cant do batch sequences in standard. Any other ideas? -
I need help to create idoc from scrach.
i need help to create idoc from scrach.
Swamy Katta,
Please read "[the rules|https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/rulesofEngagement]" before you post any further, and confirm that you have read them?
=> Search first, ask questions later please!
Julius -
Hi i am new to this forum, i need help with SAP SD module. Can you please provide me pointers or links to get started SAP SD module and start facing the interviews.
Hi Aditya,
For understanding the SD module itself, the link - http://help.sap.com/saphelp_erp2005/helpdata/en/8c/df293581dc1f79e10000009b38f889/frameset.htm is the ultimate one.
Again you can also refer to the mateial "Implementing R/3 S&D BY GLYNN C.WILLIAMS".
For Cracking interview, You can refer to "SAP SD Interview Questions, Answers, and Explanations By: Jim Stewart" which is available in the market.
Regards,
SARTHAK -
Need help in Creating a sequence
Hi,
I need to create a sequence which starts with the value one more than max value of one of the columns in a table. Can anyone help me in this regard?
Eg: I have a table 'User_Details' with one of the columns as 'ID', I need to create a sequence for this table which starts with one more the 'max(ID)' if there are any records already existing.
Thanks,
RaghuAssuming that you have some way to identify which columns of which tables will be populated by sequences in the new release, the you could write PL/SQL code to automatically generate this. In this example I have assumed that you need a sequence created forthe (single) numeric PK column of each table in a particular schema, and that the sequence name will always be table_pk_seq.
DECLARE
l_max NUMBER;
BEGIN
FOR r IN (SELECT c.table_name, cc.column_name
FROM user_constraints c, user_cons_columns cc
WHERE c.constraint_name = cc.constraint_name and
c.constraint_type = 'P') LOOP
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM '||r.table_name INTO l_max;
l_max := l_max + 100; --just to be safe
EXECUTE IMMEDIATE 'CREATE SEQUENCE 'r.table_name||'_pk_seq '||
'START WITH '||l_max||' INCREMENT BY 1';
END LOOP;
END;John
Maybe you are looking for
-
hi i am using ecc 6.0.. while doing migo... i get an error..the posting period is only possible in 10/2007 and 9/2007 for company code xxxx...i have tries mmpv to no use... mmrv ob52 ob29...cannot find a solution.pls help
-
Rebate Error- Sales Volume not current for agreement.
Hi I am doing Rebates. "The error I am getting is Sales Volume for the agreement (xx) is not current". In the rebate agreement, condition - payment data - the accruals, rebates are not getting updated. It shows zeros. I checked accounting documents:
-
Can't get rid of search.conduit
search.conduit has taken over as my homepage and I can't get rid of it. I've tried removing it from Manage My Search Engines. I've tried disabling the add-ons. I've tried 're-set' by entering about:config in the address bar. None of this has worked.
-
I need help to unblock plug-ins. I have checked and javascript is enabled, java is allowed, and other plug-ins is allowed. How do I unblock plug-ins?
-
After reinstall steps to get photo library back
Hard drive error so did a clean install of OS and apps. Photo library folder is on external HD. Can I just drag and drop folder from external to iMac pictures directory? Or do I "Import to Library"? Thx. SL, iphoto '11