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
    sanjana

    the 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
    Alain

    hi,
    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,
    John

    Hi,
    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 ();
    }

  • Need help in creating RAID 5

    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 + no of tabs in webpart should be dynamic.

    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 advance

    the 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

  • Need help with SAP SD module

    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,
    Raghu

    Assuming 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

  • Migo problem

    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 am unable to unblock plug-ins.  My javascript is enables, java is allowed, other plug ins is allowed.  Help!

    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