Complex conditional mappings - XSLT constructs

Hi,
Please confirm if following such complex conditional mappings are possible using
BPEL Jdev and how can these be achieved
I could not find anything in XSLT constructs of BPEL or either tutorials which
would help me in ascertaining if the following types are possible in BPEL.
the items that fall before "_" below are the elements
suffixes source and target indicates that elements are of target or source
xsd
constants are indicated by _constant
if (x_source=c1_constant or x_source=c2_constant)
then
b_target=(b_source "concatenated with" d_source)
else b_target=b_source
if (a_source>a1_constant)
and
if (x_source!=c1_constant or x_source!=c2_constant)
then
a_target=a_source
We are planning to Use BPEL/B2B for EDI. Our current EDI systems have such kind
of complex mappings requirements where those are resolved by EDI tool, wanted
to check if same is possible in BPEL and how can this be achieved
Thanks
Sachin Sutar

Of course, use an XSL to transform from source XSD to destination XSD.
Check out http://www.w3.org/TR/xslt to see conditional processing in XSLT. You may either use xsl:if and xsl:choose for conditional processing in XSL.

Similar Messages

  • Complex condition in process flow transition

    From a mapping i have three outgoing transitions:
    1: "KM_UTIL_PKG"."GETTESTMODE"() = 0
    2: "KM_UTIL_PKG"."GETTESTMODE"() = 1
    3: unconditional
    the process flow validates ok, deploys ok but when it is executed the error message is :
    ORA-06550: line 1, column 1085: PLS-00201: identifier 'KM_UTIL_PKG.GETTESTMODE' must be declared ORA-06550: line 1, column 1058: PL/SQL: Statement ignored.
    Although the function is there.
    What am i doing wrong ?. Has anyone an example of the expected syntax in the transition condition editor > complex condition window ?
    Ron

    Try giving just = 0 and = 1 without the function call, as the function call is already appended in the where clause.
    For example I was able to make it work by just giving IS NULL and IS NOT NULL.
    Also there is VALIDATE button within the window where we give the complex condition. Try to validate the condition there itself.
    Best,
    Manohar

  • Complex condition in OWB

    Hi ,
    I have designed the process flow where i have a plsql transformation which is further connected to route activity, route has to take decision if the plsql transformation value is 'yes' then run the mapping else route the other flow which will run the status procedure to log the message of the end of activity.
    procedure------route----1 to end the activity and log 2, run the mapping based ok plsql return value.
    I tried to use complex condition but it says the return value should be declare.
    how can i use the retun value in complex condition

    If you configure the process flow and go to Transformation Activities and your PLSQL transformation, keep expanding under Execution Settings there is a property 'Use return as Status', by default this is false, change to true and you can use a PLSQL function return value as a value to test in expressions.
    Cheers
    David

  • [OWB 10g] Complex Condition in a transition

    Hi all,
    I want to do a complex condition from my "AND1" component to my "END_SUCCESS".
    Here is a picture of my problem :
    [http://craweb.free.fr/owb/flux.png]
    In fact, I want to do this condition (you can see it in the previous picture) :
    IF after the "AND1" component the number of warnings <= 50 THEN
    redirect to "END_SUCCESS" (equivalent to "SUCCESS" enumerated condition)
    ELSIF after the "AND1" component it's "SUCCESS" THEN
    refirect to "END_SUCCESS"
    ELSE
    redirect to "END_WARNING"
    END IF;
    I have a problem with "NUMBER_OF_WARNINGS" variable and I don't know how to write my complex condition.
    Please, is anyone can help ?
    Regards,
    VD.
    Edited by: user7960834 on 24 juin 2009 00:36

    I have found the solution by creating a function.
    Thanks for help anyway.

  • Set complex condition of process flow transition by OMB skript

    Hi,
    i would like to set a complex condition for a process flow transition with OMB+.
    If i use:
    OMBALTER PROCESS_FLOW 'somename' ADD TRANSITION 'yyy' FROM ACTIVITY 'a' to 'b' SET PROPERTIES (TRANSITION_CONDITION) VALUES ('some complex condition')
    the skript sets the condition but the radiobutton within the transition condition editor still point to 'Enumerated Condition' and the complex condition editor sheet, where my condition should be printed is empty. But the Object details within the Process editor shows my condition correct.
    We use 11gR1 11.1.0.7.0 (OWB & DB).
    Has anybody a clue if i am able to set the transitioncondition to COMPLEX ? Or is it a bug ?
    Your Help is appreciated, thanks
    Thomas

    Hi Thomas
    You use the property COMPLEX_CONDITION on the activity for complex transition condition expressions.
    Cheers
    David

  • How to code complex conditions

    Hi Everyone,
    First, please forgive if I don't use programming terminology correctly, I am a beginner with no background in informatics.
    My question will be a general one: What is the good approach to code complicated conditions?
    I have a good example to start with which is actually a concrete task that I need to do in my small application:
    TODO: Shorten/abbreviate a person's full name to fit in to a 16 characters.
    For example: Johnathan Necromancer --> J Necromancer
    There are many possibilities how to do it based on the length of the first, last and middle names and there is an order of preference for these solutions.
    So if possible abbreviate only the first name like above; if it's still too long then then leave the space out, and so on. These would be the preferences demonstrated with examples:
    1. J L Smith
    2. JL Smith
    3. JLSmith
    4. John Languely S
    5. John Lang B S
    6. John L S
    7. JohnLS
    8. J L S
    9. JLS
    How to code it? With nested if -s or with if-else blocks or in an other way?
    First I did it with nested if -s, but it was kind of mess after a while, so the most straightforward way for me was to do it as follows:
    (Simply 'calculate' the abbreviated names in the preferred order and return if it fits into the 16 characters.)
    if (displayName.length() > 16) {
                   String[] dn = displayName.split("\\s+");
                   String lName = dn[dn.length - 1];
                   StringBuffer dName16 = new StringBuffer();
                   // J L Smith
                   dName16 = new StringBuffer();
                   for (int i = 0; i < dn.length - 1; i++) {
                        dName16.append(dn.charAt(0) + " ");
                   dName16.append(lName);
                   if (dName16.length() <= 16){
                        return new String(dName16);
                   // JL Smith
                   dName16 = new StringBuffer();
                   for (int i = 0; i < dn.length - 1; i++) {
                        dName16.append(dn[i].charAt(0));
                   dName16.append(" " + lName);
                   if (dName16.length() <= 16){
                        return new String(dName16);
                   // JLSmith
                   dName16 = new StringBuffer();
                   for (int i = 0; i < dn.length - 1; i++) {
                        dName16.append(dn[i].charAt(0));
                   dName16.append(lName);
                   if (dName16.length() <= 16){
                        return new String(dName16);
    //more code..
    I would like to know how to approach these kind of situations effectively and clearly in the least error prone way. How to code complex conditions? Is there any book or theory about it?
    I am not sure it is clear what I am asking, but I will follow up with more description on what I mean later. But please comment, ask, advice anything in the meantime - I would really appreciate any help with this.
    Thank you in advance!
    lemonboston                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    So this would be it. What do you think, what should I improve?
    public class Main {
         public static void main(String[] args) {
              String[] names = { "Bud Spencer", "Matthew MacFadyen",
                        "Juan Carlos Santiago Sanchez Estrella Ramirez",
              "Maria De Dios Otero" };
              for (String n : names) {
                   System.out.println(n + " -->\n" + abbreviateName(n, 16) + "\n");
         private static String abbreviateName(String fullName, int maxLength) {
              if (fullName.length() <= maxLength) {
                   return fullName;
              } else {
               * preferred formats for abbreviation:
               * J L Smith
               * JL Smith
               * JLSmith
               * John Languely S
               * John L S
               * JohnLS
               * J L S
               * JLS
               * if none works, return the first maxLength characters
                   String[] nameArr = fullName.split("\\s+");
                   String lastName = nameArr[nameArr.length - 1];
                   ArrayList<StringBuffer> abbreviatedList = new ArrayList<StringBuffer>();
                   StringBuffer abbreviatedName;
                   // J L Smith
                   abbreviatedName = new StringBuffer();
                   for (int i = 0; i < nameArr.length - 1; i++) {
                        abbreviatedName.append(nameArr.charAt(0) + " ");
                   abbreviatedName.append(lastName);
                   abbreviatedList.add(abbreviatedName);
                   // JL Smith
                   abbreviatedName = new StringBuffer();
                   for (int i = 0; i < nameArr.length - 1; i++) {
                        abbreviatedName.append(nameArr[i].charAt(0));
                   abbreviatedName.append(" " + lastName);
                   abbreviatedList.add(abbreviatedName);
                   // JLSmith
                   abbreviatedName = new StringBuffer();
                   for (int i = 0; i < nameArr.length - 1; i++) {
                        abbreviatedName.append(nameArr[i].charAt(0));
                   abbreviatedName.append(lastName);
                   abbreviatedList.add(abbreviatedName);
                   // John Languely S
                   abbreviatedName = new StringBuffer();
                   for (int i = 0; i < nameArr.length - 1; i++) {
                        abbreviatedName.append(nameArr[i] + " ");
                   abbreviatedName.append(lastName.charAt(0));
                   abbreviatedList.add(abbreviatedName);
                   // John L S
                   abbreviatedName = new StringBuffer();
                   abbreviatedName.append(nameArr[0] + " ");
                   abbreviatedName.append(lastName.charAt(0));
                   abbreviatedList.add(abbreviatedName);
                   // JohnLS
                   abbreviatedName = new StringBuffer();
                   abbreviatedName.append(nameArr[0]);
                   for (int i = 1; i < nameArr.length - 1; i++) {
                        abbreviatedName.append(nameArr[i].charAt(0));
                   abbreviatedList.add(abbreviatedName);
                   // J L S
                   abbreviatedName = new StringBuffer();
                   for (int i = 1; i < nameArr.length - 2; i++) {
                        abbreviatedName.append(nameArr[i].charAt(0) + " ");
                   abbreviatedName.append(lastName.charAt(0));
                   abbreviatedList.add(abbreviatedName);
                   // JLS
                   abbreviatedName = new StringBuffer();
                   for (int i = 1; i < nameArr.length - 1; i++) {
                        abbreviatedName.append(nameArr[i].charAt(0));
                   abbreviatedList.add(abbreviatedName);
                   // return the first one that fits in to maxLength
                   for (StringBuffer shortName : abbreviatedList) {
                        if (shortName.length() <= maxLength) {
                             return new String(shortName);
                   // If none of the above works, simply keep the first maxLenght character               
                   return fullName.substring(0, maxLength - 1);

  • How deploy a transition using complex condition by OMB+?

    Hello,
    I can’t deploy a process flow package using OMB+
    But, it doesn't work because of a transition with complex condition.
    I will try to explain my problem on the best :
    I am working in OWB 10g R2.
    I developped several process flow of this modele:
    - I have a package module named : PFL_MODULE
    - In this package module, I have created four process flow package :
    PPK_ODS
    PPK_DWH
    PPK_DMT
    PPK_SCH
    In each package I have three or four process flow.
    To deploy it, I use OMB+
    I created this script :
    +# move to apropriate context+
    OMBCC '/$project_name/PFL_MODULE'
    +puts "Current context is [OMBDCC]"+
    +puts ""+
    +# Connect to the default control center+
    +puts "Connect to the default control center"+
    +puts ""+
    +OMBCONNECT CONTROL_CENTER+
    +puts "Deploying workflows :"+
    OMBCREATE TRANSIENT DEPLOYMENT_ACTION_PLAN 'PROCESS_FLOW_PACKAGES' \
    ADD ACTION 'PPK_ODS' \
    SET PROPERTIES (OPERATION) VALUES ('CREATE') \
    SET REFERENCE PROCESS_FLOW_PACKAGE 'PPK_ODS' \
    ADD ACTION 'PPK_DWH' \
    SET PROPERTIES (OPERATION) VALUES ('CREATE') \
    SET REFERENCE PROCESS_FLOW_PACKAGE 'PPK_DWH' \
    ADD ACTION 'PPK_DMT' \
    SET PROPERTIES (OPERATION) VALUES ('CREATE') \
    SET REFERENCE PROCESS_FLOW_PACKAGE 'PPK_DMT' \
    ADD ACTION 'PPK_SCH' \
    SET PROPERTIES (OPERATION) VALUES ('CREATE') \
    SET REFERENCE PROCESS_FLOW_PACKAGE 'PPK_SCH' \
    OMBDEPLOY DEPLOYMENT_ACTION_PLAN 'PROCESS_FLOW_PACKAGES'
    OMBDROP DEPLOYMENT_ACTION_PLAN 'PROCESS_FLOW_PACKAGES'
    +puts [OMBCOMMIT]+
    +puts "Workflows are deployed"+
    when I tested it, everything worked !
    But, recently, I had to modify one of my process flow. This process flow is in PPK_SCH package (and it named PRC_SCH_FULL)
    I had to change a transition using an enumerated condition (SUCCESS, ERROR) by a transition using a complex condition.
    My condition is very simple, I test one of my variable ("PRC_SCH_FULL"."VAR_END" =1)
    When I deploy my new process flow by the control center in OWB it works.
    But, when I deploy it by my script I have an error message :
    *OMB05602 : An unknown Deployment error has occured for Object Type DeploymentContextImpl.generate WBGeneratedObject[] is null or length 0 for PPK_SCH.*
    I'm sure the problem is in transition because when I put an enumerted condition back, it works again.
    So, How can I do to deploy my process flow package that contains a process flow with complex condition in a transition?
    thank you in advance for any suggestions.
    Jue.
    Edited by: Jue on 20 juil. 2011 05:06

    If I get what you said, then you have 2 enumerated and one complex condition?
    Rules for Valid Transitions
    For a transition to be valid, it must conform to the following rules:
    All activities, apart from START and END, must have at least one incoming transition.
    Only the AND and OR activities can have more than one incoming transition.
    Only a FORK activity can have more than one unconditional outgoing transition.
    A FORK activity can have only unconditional outgoing transitions.
    An activity that has an enumerated set of outcomes must have either an outgoing transition for each possible outcome or an unconditional outgoing transition.
    An activity can have zero or more outgoing complex expression transitions.
    An activity, with an outgoing complex expression transition, must have an unconditional outgoing transition.
    An END_LOOP transition must have only one unconditional transition to its associated FOR_LOOP or WHILE_LOOP activity.
    The transition taken by the exit outcome of a FOR_LOOP or WHILE_LOOP must not connect to an activity that could be carried on as a result of the "loop."

  • Enhance Standard Mappings(xslt/java)

    As part of the SNC 7.0 components for PI. We get a bunch of standard content.
    This includes standard operational mappings between ECC IDocs and SNC Proxy structures.
    Our requirement involves enhancing the IDocs and proxy's with new fields and mapping the same in PI.
    Is there anyway to do this without editing the standard mapping code(java or xslt)?
    Thanks,
    Harsh

    Thanks all for your responses. As pointed out, the problem with copy or direct edit is that the SAP will no longer support the mapping code it provided. So I may add only two lines to the standard code, but what if the other 1000 lines have a bug?
    I'm trying to figure out if there is an elegant way to add-on without modifying the code.
    If not, then are there any recommended ways to go about editing the code? Any help on this would be much appreciated!
    Thanks,
    Harsh
    PS:  Some of the standard mappings are in xslt and others in Java.

  • Complex Conditions in Filters?

    Could I code any complex regex conditions in a content filter beyond what the rules editor allows me to do?
    For example, since now i know how to use a dictionary to lookup authorized senders for encrypting with CRES (thanks to an earlier responder), I need a condition such as this:
    IF (msg flagged AND sender-from dictionary)
    ENCRYPT
    ELSE IF (msg flagged AND sender-not-in-dictionary)
    BOUNCE with error to sender
    ELSE
    SEND UNENCRYPTED
    Any suggestion?
    Thanks.
    Sent from Cisco Technical Support iPhone App

    Hello John,
    "Could I code any complex regex conditions in a content filter beyond what the rules editor allows me to do?"
    No you can't, GUI or CLI the content fitlers do not allow for complex regex.  However, the CLI's message filters allow for 'else' and 'if not' statememts.  Unlike content filters,  message filters are not directional (inbound vs. outbound emails), so you have to define a direction for them.  If you do not,  the appliance will start to look at traffic coming from the internet and leaving for the internet.  This will increase load on the unit, as it has to look at all traffic.
    The best way to accomplish this task would be via  an LDAP membership profile, and a special outbound mail policy, and your defuault catch all outbound mail policy.  A user can only match one mail policy, even if they exist in more than one. 
    Steps I would take to  accomplish this task:
    Most likely you already have an LDAP system,  this repository has all your users, and they are most likely already in buckets/groups.  
    IT Admins
    Accounts
    Business
    Guests
    etc...
    EncryptEmail -- new group
    1.  you will need an LDAP profile on your appliance (system administration-- LDAP ) ## will control group membership queries, mail from, authentication .. among many other
    2. create a group in your LDAP system called -- "EncryptEmail"  ##  -- name is yours to define,  add all your  users allowed to encrypt to the group.
    2A-- create an LDAP group profile 'ldap_server'
    2B --Create an LDAP group query 'ldap_server.group'
    3. create an  outbound Encrypt filter that looks for the encrypt flag set to  \[SEND SECURE\] ##-- single escapes-- content filter will handle the second escape, or what ever flag you are actually looking for.
    4. create an outgoing mail policy that will be for your 'ldap_server_profile.group-query.EncryptEmail' ###as people get added or removed,  your LDAP system membership will be altered'  you don't have to touch the mail policy again
    (mail policies-- outgoing mail policies ADD LDAP Group Query  -- select your group query, and add the name of your group, example is using "EncryptEmail"),  when you click add it will look something like this
    ldap_server.group-query.EncryptEmail
    5. now activate your  -outbound Encrypt filter- only on the  your outbound mail policy that has the LDAP group on it.
    NOTE:
    Encryption will only be done for the people that match on your LDAP outbound mail policy, and have their subject flag on. Other traffic from these users will also match, but will not be encrypted.  Since content filters can be activated on different mail policies, you can also activate any other policy type content filter you have for all your users on this outbound policy too. By default it will enherit AS and AV Scanning, so you should not have to add them. if you have done something that stops this, then, please enable AS and AV on the new mail policy too.
    Now to deal with the users that are not in your encrypt LDAP group,  and flagged/subject thier email for encryption 
    \[SEND SECURE\]
    6. on your default outbound mail policy,  create an new outbound mail content filter that has one conditions
    6A Condition:  "looks for your encrypt flag/subject"
    6B  First Action: if the flag/subject is found:  Notify action -- notify the sender and the administrator--
    6C Second Action: if the flag/subject is found:  Bounce action --  this is final,  and the email will be returned.
    7.  active your new content filter on the default 'catch all' outbound mail policy.
    Submit and commit all your work a long the way.
    you are done.  I strongly advice you to test the steps with a couple of testing mail policies that only have IT guys in the them.  once working, you can push the work to prod.
    If you still want to do this via a message filter,
    CLI -- filters-- new
    you can use something like this:
    ====================================================
    To_encrypt_NOT_encrypt:
    if ((recv-listener == "InboundMail") AND (mail-from-dictionary-match("users_allow_encrypt")) AND (subject == "\\[SEND SECURE\\]"))
    encrypt('encryption_profile');
    else {
    if ((subject == "\\[SEND SECURE\\]") AND (NOT mail-from-dictionary-match("users_allow_encrypt")))
    notify("[email protected], $EnvelopeSender");    
    bounce();
    ====================================================
    cheers,
    -Alvaro

  • Conditional Tag - Under Construction

    Hi,
    Have pages not within the TOC or linked to, but still come up
    under the Search results. If I do not want these pages to be
    searchable, do I apply the Under Construction Build tag, or could I
    make it Status > Ready for Review ?
    Thanks!

    You are misunderstanding what topics go into an output. All
    topics go in except those that have a conditional tag that gets
    them excluded via the build expression. The fact they they are not
    in the TOC and have no links to them is irrelevant.
    If you apply a build tag to exclude them, they will not be in
    the output but it seems your goal is to have them in the output but
    not searchable. Snippet 94 on my site will help you with that.
    The Ready for Review status does not exclude topics.
    I suggest you experiment in a dummy project before setting
    things up in your real project.

  • Complex conditional sum formatting

    I am working on a document that breaks down backpacking supplies per camper.  I have a formula that allows me to add pounds and ounces, however I want to add a conditional sum so that under total weight I can have Camper 1, 2 and 3’s total weight.  Because of the formula adding lbs and oz I can’t get the conditional sum formula to work. 
    Formula for adding lbs and oz: =INT((SUM(C2:C30)*16+SUM(D2:D30))/16)&" lbs. "&MOD((SUM(C2:C30)*16+SUM(D2:D30))/16,1)*16&" oz."
    Sample:

    Do all the calculations using a single unit. Ounces.
    Add a column after column D to convert each pair of numbers into ounces only.
    E2: =16*C+D
    Fill down to E9
    Place the weight summaries onto a separate table. This allows you to reference whole columns without running into "own cell" errors.
    If desired, convert the totals back to pounds and ounces using Quotient and MOD.
    Formulas on the summary table:
    B2: =QUOTIENT(SUM(Table 1 :: $E),16)&" lb. "&MOD(SUM(Table 1 :: $E),16)&" oz. "
    B3, filled down to B4: =QUOTIENT(SUMIF(Table 1 :: $F,A3,Table 1 :: $E),16)&" lb. "&MOD(SUMIF(Table 1 :: F,A3,Table 1 :: $E),16)&" oz. "
    Regards,
    Barry

  • How to create multiple idocs based on complex condition

    HI Users,
    my scenario is jms(xml file) to idoc. for each file have multiple records for each record i need to create multiple idocs.
    source structure:
    <lineitem>
    <student sid="cid">456</student>
    <hreference>
    <reference rtype="number">123</reference>
    </hreference>
    <hreference>
    <reference rtype="number">789</reference>
    </hreference>
    <hreference>
    <reference rtype="char">147</reference>
    </hreference>
    now condition is One input message must create only one output message for each unique  rtype="number" and sid="cid" combination.
    for example
    1. rtype="number" and sid="cid" the value combination means 123456 for this one idoc
    2.  rtype="number" and sid="cid" the value combination means 789456 for this one idoc
    --> the below file shows with out sid="cid"
    <lineitem>
    <student sid="abc">456</student>
    <hreference>
    <reference rtype="number">123</reference>
    </hreference>
    <hreference>
    <reference rtype="number">789</reference>
    </hreference>
    <hreference>
    <reference rtype="number">147</reference>
    </hreference>
    in this case we have to consider only rtype="number" so here we need to create  3 idocs.
    Could anyone help me in this regard.
    Thanks in advance

    Hi Swathip,
    Change the occurence of the IDoc to "unbounded", so that multiple IDocs can get create
    Try with below logic
    If (SID = "CID")
    Then
         If(rtype = "number")
              concat(student,reference ) ---> removeContext ---> Idoc          
    Else
         rtype ---> removeContext ---> Idoc
    If combination of unique  student and reference can occur more than once in the XML, use sort command and splitByValue (Value Change)
    Edited by: chandra shekhar on Jul 3, 2011 12:53 PM

  • Complex Condition Type for Discount Needs Assistance

    Is it possible to have this kind of requirements ?
    No of cases               Powder Tea/Fruit                            
                                Base    Cash    Total           
    1-9 cs                   10.00   10.00   20.00           
    10-19 cs               20.00   10.00   30.00            
    20-49 cs               25.00   10.00   35.00         
    50 cs & above       30.00   10.00   40.00          
    No of cases                Water  
                              Base      Cash    Total 
    1-9 cs                 3.00       2.00      5.00
    10-19 cs              8.00       2.00     10.00
    20-49 cs              13.00      2.00     15.00       
    50 cs & above       20.00      2.00     22.00
    No of cases                 RTD-PET   
                               Base   Cash  Total
    1-9 cs                  4.00      3.00    7.00
    10-19 cs              7.00      3.00   10.00
    20-49 cs             12.00     3.00    15.00    
    50 cs & above      17.00     3.00     20.00
    Sample products
    POWDER TEA/FRUIT
         1. Mango powder
         2. Lemon powder
    RTD PET
        1. Pineapple 500 ml
        2. Orange 500 ml
    WATER
        1 Purewater
    Scenario 1:
    Customer is purchasing the following:
    Mango powder - 25 cs
    How much will be the total discount?  SInce the customer orrdered 25 cs, the total discount that will be given is Php 35.00 based on matrix above.
    However,,
    Scenario 2.
    If the customer purchased a combination of
    Mango powder -10 cs
    Pineapple 500 ml - 20 cs
    Purewater - 20 cs
    The total discount that should be give are:
      Mango powder - PHP 40.00
      Pineapple - PHP 20.00
      Purewater - __PHP 22.00__
            total discount : PHP 82.00
    The prolem we encountered is we cannot do the total of all products given on the matrix above.The system reads the discount per line item. We need to generate first the total orders so we can get the correct computed discount base on the matrix.

    Hi Jefferson Thomas Javier,
              To take in account the whole quantity of items to calculated the discount condition, you should make the condition type of discount as a Group condition (it is a check box within the configuration of the condition price), in this way the quatity taken to calculate the discount is the sum of all items.
    Thanks,
    Mariano.

  • Complex conditional display in report table

    Hi,
    I built a report in a region, and want to make one of the columns conditionally display based on attributes from two other columns in the table. The drop-down for the conditional display only lets me refer to the current item. Is there a way I can reference the other cells in that table row in a PL/SQL expression (e.g.: something akin to #COLB# is not null and #COLC#>1000 ?)
    Related question: I'm assuming the reason I can't directly change the source for the report region and can only modify it from the Query Definition tab is because I used a wizard to create it. Is there a way to "undo" this and make the source for the report fully editable? That would also solve the problem, since I could just add a function-derived column to the query.
    Thanks in advance,
    Keith

    One final update and rephrasing of the problem, because maybe there's another way to solve this.
    I have a column in a report that links to another page, but the link is only shown if a certain condition is met (which is based on other cells in this table row). I can test for those conditions in my original SQL query, so that a null value in my link column results in no user-clickable link being created. (I have to make sure that a null value appears as null on the report page, too.)
    This works fine if the link text is just that: text. Because not meeting the condition returns null, so no text == no link.
    Now the only problem I have comes if I want to use an icon (e.g.: the edit icon) instead of link text.
    What I really want is for the icon to only appear if a certain condition is met. However, the icon replaces the column value so I can no longer use a null value to prevent the link from appearing.
    The original question asked whether I can use other report cells (#foo#) in the conditional display for a cell. If that's not possible, any suggestions on how to achieve the desired effect without resorting to JavaScript?
    Thanks.
    Edited by: kswartz on Jun 20, 2009 1:56 AM

  • How to give if condition in XSLT for the below issue

    I have a customer order in .Txt which is picked by my FTP process & in mediator mapping will be done. Here i have an issue where the Txt file is in delimiter file it is having Customer Order number(CON) in each line of a single record,now i have to ignore the CON and to pic all the other details of the same Order. Here in the below i'm placing the sample file. where each order no. is repeated along with remaining details of same order. My problem is when i deployed each CON of line is taking as a single order., after reading CON details once it should jump to new CON. In this Stock code & Quantity are changing, so it should pic this excluding CON in each line.
    Customer order number;Order Date;Stock code;Quantity;Leverans adress namn;Leverans adress rad 1;Leverans adress rad 2;Leverans adress rad 3;Postnummer;Stad;ButiksID
    "61068344";"31-01-11";"02716Z0";"1";"Telenor Sverige AB";"Inköp Verkstan";"Industrigatan 33B";"";"212 28";"Malmö";"302"
    "61068344";"31-01-11";"99H10048-00";"1";"Telenor Sverige AB";"Inköp Verkstan";"Industrigatan 33B";"";"212 28";"Malmö";"302"
    "61068344";"31-01-11";"99H10046-00";"1";"Telenor Sverige AB";"Inköp Verkstan";"Industrigatan 33B";"";"212 28";"Malmö";"302"
    "61068344";"31-01-11";"100-99150000-60";"4";"Telenor Sverige AB";"Inköp Verkstan";"Industrigatan 33B";"";"212 28";"Malmö";"302"
    "61068344";"31-01-11";"0278812";"2";"Telenor Sverige AB";"Inköp Verkstan";"Industrigatan 33B";"";"212 28";"Malmö";"302"
    "61068344";"31-01-11";"534970";"1";"Telenor Sverige AB";"Inköp Verkstan";"Industrigatan 33B";"";"212 28";"Malmö";"302"
    "61068373";"31-01-11";"1234-0433";"1";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"100-92080000-60";"30";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"0138";"40";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"CM011674";"40";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"CM012044";"10";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"IC416";"30";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"1230-1847";"10";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"99H10046-00";"2";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"
    "61068373";"31-01-11";"CPW012602";"30";"Strålfors Svenska AB";"Web Consumer";"Logistik Telenor";"Långgatan 8";"341 38";"Ljungby";"269"

    Here i missed one thing to say, After reading all the fields from first record of CON the Stock_Code & Quantity to be picked and added in the same record from next line of CON untill the CON is changed. For this can we do with NXSD file? using which option can we use this? & how can we complete this in XSLT?

Maybe you are looking for

  • Error 001 on web dynpro project

    Hi All I have just completed a project on web dynpro and I have been struggling with an error for quiet some time now... This is the details of that error: " Apr 2, 2007 1:17:35 PM /userOut/deploy (com.sap.ide.eclipse.sdm.threading.DeployThreadManage

  • Set for specific nodes in JTree specific rowheight

    Hi, I got a JTree with different components for the nodes userobject. some nodes got JTextAreas as userobject. Those nodes got the same height as all other nodes. This is the problem ... the nodes who contains JTextAreas should have a larger rowheigh

  • Changing the EVB3 speed control

    How do I change the rotary speed control number on the EVB3 to accept controller change #82, which is what my Nord Electro is sending? I'm using the Electro as a MIDI controller for Mainstage, and I've got all three pedal jacks plugged in, but i don'

  • After installing OSX Mountain Lion I can no longer add attachments of any kind to my e-mails.

    After installing OSX Mountain Lion I can no longer add attachments of any kind to my e-mails.

  • OLEDB Provider for Teradata - 64 bit

    Hi, We want to install OLEDB Provider for Teradata - 64 bit in Windows Server 2012 for SharePoint 2013 Excel Services connection refresh. Please let us know from where to download them. Thanks in advance. Regards K.V.B.Gururaaja