Using concat Function in Mapping

Hello,
I have a mapping where I'm using the standart concat function to concatenate the content of two queues. Every queue has normally only one entry. When both queues have one entry, it is working without any issues.
But now my problem: First queue has one entry and second queue has only a supresser. When I want to concatenate both queues, the result is also a supresser. But I'd like to have that the result will be the entry of the first queue when second queue exists of supresser...
How can I get this realized that the concat function is also working in this case? 
Is there maybe a workaround?
Thank you for your help.

Hi Lukas
You can add the node function MapwithDefault with default value space after the field which is having suppress value.
Then add the output of MapwithDefault to the second input of concat function.
This will generate the output as the value of first field.
let me know if you have any doubts.

Similar Messages

  • Using Concat function - in Excel Source

    Hi,
    I am using an Excel file as a source and oracle table as a target.
    In the Excel file i need to concatenate two columns and map it to the target oracle column based on a condition.
    I used the concat function in Expression Editor, but its throwing an error 'Undefined expression' as our source is not a oracle.
    What should i do to execute the excel function in ODI?
    Thanks in Advance
    Ram Mohan T.

    Hi,
    Probably, you have mistake in Excell syntax, try to concutenate columns by Oracle (set 'target' radiobutton in mapping and use '||') and we will see...

  • Concatanate new line using concat function in BPEL process

    Hi,
    Anyone please tell me how can i concatenate new line at the end of a string in concat function?

    If using xsl you can use this one:
    <xsl:value-of select='concat("First Name :: ",/ns1:ProcessRequest/ns1:firstName)'/>
    <xsl:text> &hashxD; &hashxA;</xsl:text>
    <xsl:value-of select='concat("Last Name :: ",/ns1:ProcessRequest/ns1:lastName)'/>
    give # in place of hash

  • Using SORT function in mapping

    Hi,
    I am having trouble getting my head around using the SORT function.
    My interface is IDOC to File, The IDOC has a repeating segment (PAYLOAD) that can be of 3 types, either type A, B or C (this is set using a "TYPE" field).
    In my file structure I have a repeating "ROW" element which has all of the fields for each row.
    I want to group all the Type A data together, the Type B together and the Type C.
    I have tried the following mapping on the "ROW" element but it doesn't seem to work:
    "TYPE"--"sort"Split By Value (Value Change)--collapseContext--"ROW"
    for each of the mappings under ROW I just have fields copied directly.
    I think I am doing something wrong.
    Thanks.

    Hi,
       You could make this mapping
         TYPE --- +----------------+     +----------------+
               |                |     |                |
               | Concat         | --- | mySortFunction | --- NAME
               |                |     |                |
         NAME --- +----------------+     +----------------+
         TYPE --- +----------------+     +----------------+
               |                |     |                |
               | Concat         | --- | mySortFunction | --- ADDR
               |                |     |                |
         ADDR --- +----------------+     +----------------+
       Where source code of mySortFunction is like this:
    public void mySortFunction(String[] inputValues,ResultList result,Container container){
         for(int i=0;i<inputValues.length;i++)
              if(inputValues<i>.substring(0,1).equals("A"))
                   result.addValue(inputValues<i>.substring(1, inputValues<i>.length-1);               
         for(int i=0;i<inputValues.length;i++)
              if(inputValues<i>.substring(0,1).equals("B"))
                   result.addValue(inputValues<i>.substring(1, inputValues<i>.length-1);
         for(int i=0;i<inputValues.length;i++)
              if(inputValues<i>.substring(0,1).equals("C"))
                   result.addValue(inputValues<i>.substring(1, inputValues<i>.length-1);
       It is very simple. You concat TYPE whit your data, and then you sort all queue, so you have a new sort queue data. You must only then put out data.

  • BPEL 1st Scenario (Using concat function and display)

    Hi,
    I am completely new to BPEL space and i am trying to execute the 1st scenario, which is to concat the source text with some input value and print the output.
    I installed the software's mentioned in the link - https://java.net/projects/oraclesoasuite11g/pages/Home ( Please let me know if anything is missed out)
    The issue that i am facing is when i am trying to deploy the project I am getting "IntegratedWeblogicServer" option in "application server" (wizard), which in turn doesn't have "SOAServers", so i am not able to complete the wizard.
    I have seen some posts saying "connection should be set up ,with application server and integrated server", how to do that ?
    Also, please let me know how to get to the admin's page, where the input text will be filled into and is there any particular sequence in which the servers (Oracle BPEL process manager/Oracle DB/Oracle service bus/Web logic server/). I am hoping I have all the components but i am not able to configure them correctly.
    Could someone help me on this.
    Regards,
    Pallab

    Hi All,
    I am assuming there is some installation issue, as multiple components needs to be installed for this scenario. To do it correctly, I want to start afresh, I have to following software installable and below is my system details. Please guide me if anything is missed out, and how to get the "SOASERVERS"  while deploying the project(in application server).
    Also I am not getting any integration server,in [JDeveloper->view-> integration server] (seen some blog, where they are asking to configure it after configuring the application server), how to configure it , if at all it is necessary.
    1.jdevstudio11117install.exe
    2.ofm_soa_generic_11.1.1.7.0_disk1_1of2.zip;ofm_soa_generic_11.1.1.7.0_disk1_2of2.zip
    3.OracleXE112_Win32.zip
    4.ofm_rcu_win_11.1.1.7.0_64_disk1_1of1.zip
    5.ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip
    6.wls1036_generic.jar
    Also which servers needs to be started and in which order it should be started.
    Could anyone please guide how to proceed with these installable.
    Regards,
    Pallab

  • Concern on Message Mapping - Concat function

    Hello Experts,
    We have a concern in our message mapping structure. The target field is "Sold-To id" at line level and source filed is "Customer No" which appears in the header node. We are using a series of concat functions while mapping these two fields. Now,  the issue is that the second concact function's input queue does not read all the values passed from the first concat function's output queue. We have checked their respective contexts but could not find the cause of this behaviour.
    Due to this the mappiing fails and the target field is not populated with the required values.
    Kindly advice.
    Thanks in advance,
    Elizabeth Jacob.

    Hi Elizabeth,
    You have
    1 KUNNR value
    2. VTWEG values
    2  SPART values
    And you wan two output to be generated (1 for each concatenated value of KUNNR, VTWEG and SPART). Is this right??
    If yes then use the node function useoneasmany with KUNNR, so that KUNNR get repeated twice(one for each value of VTWEG and SPART)
    Your mappign shoudl be like this
    KUNNR --------------------------------|
    VTWEG (context line)----------------| useoneasmany---------------------------------------| concat -----------------------------------| concat
    VTWEG( do not change context) --|                      VTWEG( do not change context) --|      SPART do not change context) --|
    Regards
    Suraj

  • SQL Concat function seem not to work properly in SQL query data model. BIP 11g

    I try to use this function to show entire name CONCAT(name, ' ', surname) and it doesnt show the surname. it looks like it only tooks 2 arguments. I use it with the option "Add element by expression" within a SQL Query - Data set.
    Lucia

    i don't believe you
    please post more info, may be screen or sql or some more useful statement
    CONCAT(name, ' ', surname) and it doesnt show the surname
    may be because for some case "surname" is empty  or may be you incorrect use concat function
    one way mentioned by BluShadow is " || " operator  - http://docs.oracle.com/cd/B28359_01/server.111/b28286/operators003.htm#SQLRF51156
    and another is concat function http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions026.htm#SQLRF00619
    so for your case it can be like
    CONCAT(CONCAT(name, ' '), surname)

  • Issue in concat function

    Hi All,
    I have a requirement like all the input variable of BPEL Notification process have to be sent in the mail body.
    But when i use concat function I am getting error as 'Invalid XQuery Expression'.
    I have used concat like
    Concat('Hi the of the Customer you are looking for is Name:','','INPUT VARIABLE WHICH I GET', 'Age', '',''INPUT VARIABLE2 WHICH I GET')
    Can anyone say me how this can be done.
    Thanks in advance

    Hi vivek thanks for your reply.
    The example which u have given wil work for different variables. But I want to assign all the inputvariables in my Notification Process Mail body.
    Any example where concat can be used for many string variables will be of great help.
    I wil explain the scnerio
    I am getting the Customer Name, Customer ID, Customer Address.... as input to BPEL Notification process.
    I want my Notification body to look like this.
    Hi,
    The details of customer are:
    Name of the Customer : Vivek (THIS IS THE INPUT VARIABLE WHICH I GET IN BPEL PROCESS)
    Customer ID: 2334566(THIS IS THE INPUT VARIABLE WHICH I GET IN BPEL PROCESS)
    Customer Address: 47, XXXXXX, XXX street, xxxx-444444(THIS IS THE INPUT VARIABLE WHICH I GET IN BPEL PROCESS)
    what expression can i use to concat all these things. I want to do it in one expression.
    I have nearly 15 input variables which has to be send in my mail.

  • DateTrans Function in Mapping

    Hi,
    Am using DateTrans Function in Mapping to convert YYYYMMDD(20100101) to MM/DD/YYYY(01/01/2010).
    In the DateTrans Function Properties, i hv given input date format as (YYMMDD)(no seperator).
    Output date format as (MM/DD/YYYY).
    But, its giving me message as ,
    Runtime exception when processing target-field mapping /ns1:MT_************/DT_Record/gbdat; root message: Unparseable date: "20100101"
    Any idea.....wat might be the issue......

    santosh koraddi wrote:>
    > Hi,
    >
    > Am using DateTrans Function in Mapping to convert YYYYMMDD(20100101) to MM/DD/YYYY(01/01/2010).
    >
    > In the DateTrans Function Properties, i hv given input date format as (YYMMDD)(no seperator).
    > Output date format as (MM/DD/YYYY).
    >
    >
    > But, its giving me message as ,
    >
    > Runtime exception when processing target-field mapping /ns1:MT_************/DT_Record/gbdat; root message: Unparseable date: "20100101"
    Santosh,
    In the input format give date as "yyyyMMdd"
    click on the help icon (little question mark) and remove the date separator "/" and replace with blank.
    In the output format give MM/dd/YYYY and make sure to double check the separator which by default is "/"
    Regards,

  • How to use Special Characters in CONCAT function or another form with Xquer

    Hello everyone
    I'm using PS3 OEPE within message flow (proxy)and I'm using Xquery.
    I'm using the CONCAT function, but this does not allow me to concatenate special characters not allowed, for example:
    I want to concatenate these strings:
    String1 = “&amp;lt;get-person&amp;gt;&amp;lt;id-person&amp;;gt;”
    String2 = “123”
    String3 = “&amp;lt;/id-person&amp;;gt; &amp;lt;/get-person&amp;gt;”
    I want to represent characters regex. It means no XML characters
    Someone knows some way, any function that allows me to concatenate in OSB these values with Xquery?
    Edited by: chromosoma on Sep 5, 2012 5:59 PM

    Hi,
    It seems to me you're doing things in the most complicated way possible...
    Firstly, you should use codepoints-to-string not the reverse... Secondly, the function work with decimals, not hexa
    http://www.xqueryfunctions.com/xq/fn_codepoints-to-string.html
    http://www.xqueryfunctions.com/xq/fn_string-to-codepoints.html
    This works...
    concat(codepoints-to-string(38),'lt',codepoints-to-string(59),'get-person')But this also works... Note that I've inserted a space between the &amp; and the lt so the forum formatting can show it...
    let
    $String1 := "& lt;get-person& gt;& lt;id-person& gt;",
    $String2 := "123",
    $String3 := "& lt;/id-person& gt;& lt;/get-person& gt;"
    return
         concat($String1,$String2,$String3)And, finally this also works... So what's the reason for escaping &lt; and &gt; with &amp;lt and &amp;gt; and why codepoints?
    let
    $String1 := "<get-person><id-person>",
    $String2 := "123",
    $String3 := "</id-person></get-person>"
    return
         concat($String1,$String2,$String3)Cheers,
    Vlad

  • Error in XSLT mapping while using string functions

    Hi All,
    While using tokenize() and substring-before() functions in XSLT mapping,we are getting an error.The error message is Unexpected symbol "" So while using string functions in XSLT mapping do we have to use any header functions.
    Please through light on syntax etc.,of string functions in XSLT.
    Thanx in advance,
    Lokesh Dhulipudi
    Edited by: LOKESH DHULIPUDI on Dec 27, 2007 7:32 AM

    Hi,
    Hope you have gone thru this help:
    http://w3schools.com/xsl/default.asp
    Rgds, Moorthy

  • How to use node functions in Message mapping !!

    Hi  Gurus,
    I have got one issue in message mapping, please can any one put some ideas on this !!
    Source Structure
    <Group_ZA>  0..unbound
         <D02_ZA>           0.. unbound
             ZA_01             0..1   - QA
             ZA_02             0..1      20
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1     QD
             ZA_02             0..1     40
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QN
             ZA_02             0..1     12
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QP
             ZA_02             0..1    60
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
          iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
         <D02_ZA>          
             ZA_01             0..1     QA
             ZA_02             0..1      20
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1     QD
             ZA_02             0..1     40
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QN
             ZA_02             0..1     12
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QP
             ZA_02             0..1    60
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    <D02_ZA>          
             ZA_01             0..1    QN
             ZA_02             0..1     12
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QP
             ZA_02             0..1    60
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    <D02_ZA>          
             ZA_01             0..1     QA
             ZA_02             0..1      20
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1     QD
             ZA_02             0..1     40
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QN
             ZA_02             0..1     12
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
         <D02_ZA>          
             ZA_01             0..1    QP
             ZA_02             0..1    60
             ZA_03             0..1
             ZA_04             0..1
         </D02_ZA>
    </Group_ZA>
    Target Structure
    ProductActivityNotification                                                       0..unbound
                          ProductActivity                                                             1..1
                                        Item                                                                 1..unbound
                                              Inventory                                                   0..1
                                                     UnrestrictedUseQuantity                    0..1
    The Group_ZA comes 'n' number of times and D02_ZA comes sometimes 5 times and sometimes 6 times etc.,
    ZA_01 field can come with 5 to 6 different values like 'QA','QD','QN' etc., sometimes ZA_01 comes only 3 times QA,QD,QN.
    if ZA_01 = 'QA' then only  we need to pass   ZA_02 value on to ''UnrestictedUseQuantity'' (target side),
    I mapped the fields, the vlaue ZA_02  passing properly on to 'UnrestictedUseQuantity' when D02_ZA comes 5 or 6 times, all the times 'QA'  value comes into ZA_01 field. In case if QA value missed or doesn't come from source, the Target side ' 'UnrestictedUseQuantity' field last value comes into last but one.
    Ex: QA value is in 3 times, but I have 4 source message on top. values comes into target side like
    20
    20
    20
    suppose to come like
    20
    20
    -- (Space)
    20
    Please required your valuable inputs in bit urget !!
    how to map field level please?
    Many Thanks in Advance
    Kind Regards
    San

    Petre:
    If you want to use standard functions then you try this:
    If-->currentdate -OR- Constant(01.02)
    currentdate -OR- Constant(02.02)   --> OR -->
    currentdate -OR- Constant(03.02)
    Then give some output
    Else give some output
    So give the output for the first two conditions to another OR and the result of the third to the same OR. So whenever the condition is true in any of the condition you will get the THEN value else you will get the ELSE value.
    ---Satish

  • How to use analytical functions inside a mapping

    Hello everybody. Here Isend you a trick that we are using for two years.
    If you want to use a function (for instance :ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)) inside a mapping you must create an expression with in the INGRP1 the fields you are going to use in the window function and in the OUTGRP1 the function you want. Create an Out -attribute with the expressión and link it to a distinct operator (using a "distinct" you encapsulte the sql and you will be able to use the function inside a filter - in the where clause.). The distinct can eliminate some register (depends on the function). If you validate the expression an error will appear (don't worry about that, the mapping will be ok).
    But there is a limitation, you will not be able tou sum over, min over, max over (it detect that they are aggregator functions). Other limitation: the debugger doesn't run with this kind of functions.
    Please publish this information on "The Warehouse Builder Utility Exchange". Mi email is [email protected] (if you need more information)

    It is possible to add SUM, MIN, MAX functions also to OWB releases prior to Paris - You have to put them in double quotes - write "MIN" "MAX" "SUM" etc. The rest of the rules (adding cut-off operator after the expression - as DISTINCT, or UNION ALL) is analogical to with ROW_NUMBER()
    That means You can create mapping with following functionality:
    SELECT
    sum (salary) over (partition by DEPARTMENT) department_salary,
    salary,
    employee_id,
    employee_name
    FROM employees_salaries
    writing it this way in OWB:
    SELECT
    "SUM" (salary) over (partition by DEPARTMENT) department_salary,
    salary,
    employee_id,
    employee_name
    FROM employees_salaries
    Regards,
    Martin

  • IDOC to FILE(xml) graphical mapping using node function createIf

    Greetings All,
                My Scenario is Idoc to File(XML)
    Target Structure is 
                           MO_MAT_LAN....................(0: unbound)
                                LAN_KEY.......................(0 :1)
                                DESCRIPTION.................(0 : 1)
    Source MATMAS Idoc
                           E1MAKTM.........................(0 : 99)
                                SPRAS_ISO..................(0 :1) 
                                MAKTX..........................(0 :1)
    initially i had mapped E1MAKTM----->MO_MAT_LAN but i dont want target node MO_MAT_LAN to be created when the SPRAS_ISO is equal to EN
    I have tried using node function createIf but the node is geting created only once although the input stucture is having occurance more than 5.
    Can anyone please help me to achive this.
    Many thanks,
    Rohit

    U have to use:-
    SPRAS_ISO mak the context to E1MAKTM compare (Use equals) it with Constant function EN out put to be given to If without else and in then Give E1MAKTM and map out put of If node to MO_MAT_LAN.
    chirag

  • How to use or function in Message Mapping?

    Hi! I was wondering if anyone can show me how to use the or function.
    Im trying to match the current date to three possible values so i need three or functions.
    EG. if ( currentDate == 01.02  || currentDate = 02.02  || currentDate = 03.02 ) {
              do something;

    Petre:
    If you want to use standard functions then you try this:
    If-->currentdate -OR- Constant(01.02)
    currentdate -OR- Constant(02.02)   --> OR -->
    currentdate -OR- Constant(03.02)
    Then give some output
    Else give some output
    So give the output for the first two conditions to another OR and the result of the third to the same OR. So whenever the condition is true in any of the condition you will get the THEN value else you will get the ELSE value.
    ---Satish

Maybe you are looking for