Concatenate values in an assign activity

Hello
Basically putting it, I have an assign activity and 2 variables (var1 and var2).
In my assign activity, the variable var2 needs to be assigned the value of var1 || '_.csv'.
But I can't see any way of doing this. In the object details of var2 I can bind var1 to it, but I don't know how to concatenate '.csv' onto it.
Any ideas anyone?
Thank you for your help.
Ansel

Hi Ansel,
In the Assign activity Object details set variable parameter attribute binding to "var2" (varible that will hold result), for value parameter value attribute set to "var1 || '_.csv'" and attribute Literal set to "false".
Regards

Similar Messages

  • Get All Element Values in Assign Activity

    Given the below XML, how can I get both values with a single statement?
    I tried /root/set/name/. with no luck. I would like to assign John Jane to a variable in a BPEL Assign Activity.
      <root>
        <set>
         <name>John</name>
        </set>
        <set>
         <name>Jane</name>
        </set>
      </root>

    If you want to select multiple nodes in an assign copy activity you will receive a selectionFailure. You can try this out by using /node/*[local-name() = 'nodename'] construct where * means all child elements and [local-name() = 'nodename'] represents the element name that needs to match.
    According to the BPEL Specification a selectionFailure MUST be thrown in the following situations:
    1. the from-spec selects multiple XML information items
    2. the from-spec selects one XML information item and the to-spec does not select exactly one XML information item.
    see BPEL Spec (section 8.4.1) http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html#_Toc164738498
    To have the desired result an assign activity with an expression can help. Use the concatenate function. See http://docs.oracle.com/cd/E28280_01/dev.1111/e10224/bp_manipdoc.htm#BABBHGAJ
    If you want to dynamically concatenate use a xslt transformation.
    Good luck!
    Melvin

  • How to find out the values which are assigned in authority group

    Hi to all
    Please tell me where can I find out the values which are assigned in authority object according to roles.
    for ex :
             Changed    Customer: Account Authorization                              F_KNA1_BED
              Changed    Customer: Account Authorization                              T-DR50175601
                Activity                       01, 02, 03, 08                                                              ACTVT
                Authorization Group            5100                                                                        BRGRU
    F_KNA1_BED is the authority object , assigned to one user.
    He can access the authorization group 5100. I want to check that value in my program.
    How ?
    Where it is stored.
    Please help me....
    Regards
    Anubhav Gupta

    Hi Anubhav,
    Please use this FM "SUSR_USER_AUTH_FOR_OBJ_GET" and pass the object name in it . You would get the values for that particular object.
    Thanks
    Nitin Sachdeva

  • Assign activity for Complex XML type in BPEL

    Hi All,
    I am NEW to BPEL. I am trying to assign a constant value to a XML Fragment of complex type in BPEL.
    Here is my XSD definition.
    <xs:element name="AssetGetList">
    <xs:complexType>
    <xs:sequence>
    <xs:element xmlns:q59="http://schemas.datacontract.org/2004/07/Xerox.MPS" minOccurs="0" name="request" nillable="true" type="q59:SearchRequest"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:complexType name="SearchRequest">
    <xs:complexContent mixed="false">
    <xs:extension base="tns:RequestBase">
    <xs:sequence>
    <xs:element xmlns:q8="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Filters" nillable="true" type="q8:ArrayOfanyType"/>
    </xs:sequence>
    </xs:extension>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="RequestBase">
    <xs:sequence>
    <xs:element minOccurs="0" name="APIKey" nillable="true" type="xs:string"/>
    <xs:element minOccurs="0" name="AccountID" nillable="true" type="xs:string"/>
    <xs:element minOccurs="0" name="AllAccessibleAccounts" type="xs:boolean"/>
    <xs:element minOccurs="0" name="PageNumber" type="xs:int"/>
    <xs:element minOccurs="0" name="PageSize" type="xs:int"/>
    <xs:element minOccurs="0" name="SortDirection" type="tns:SortDirection"/>
    <xs:element minOccurs="0" name="SortField" nillable="true" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="RequestBase" nillable="true" type="tns:RequestBase"/>
    <xs:complexType name="DateRangeFilterParameter">
    <xs:sequence>
    <xs:element minOccurs="0" name="ColumnName" nillable="true" type="xs:string"/>
    <xs:element minOccurs="0" name="EndDate" type="xs:dateTime"/>
    <xs:element minOccurs="0" name="StartDate" type="xs:dateTime"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="DateRangeFilterParameter" nillable="true" type="tns:DateRangeFilterParameter"/>
    <xs:complexType name="ArrayOfanyType">
    <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true" type="xs:anyType"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="ArrayOfanyType" nillable="true" type="tns:ArrayOfanyType"/>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/">
    <xs:element name="anyType" nillable="true" type="xs:anyType"/>.
    In the above XSD I am able to invoke the webservice by passing the Basic inputs APIKey,AccountID and it works fine without the Filters.
    Example:
    <Invoke_1_AssetGetList_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters">
    -<AssetGetList xmlns="http://api.services.xerox.com">
    -<request>
    <APIKey xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">1130a5ff-d41b-4e55-becc-f572046ff231</APIKey>
    <AccountID xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">58c6d7e4-5b7e-4cfe-acf5-f1997284ed72</AccountID>
    <AllAccessibleAccounts xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">true</AllAccessibleAccounts>
    <PageNumber xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">1</PageNumber>
    <PageSize xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">10</PageSize>
    <SortDirection xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">Ascending</SortDirection>
    <SortField xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">AssetId</SortField>
    <Filters xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS"/>
    </request>
    </AssetGetList>
    </part>
    </Invoke_1_AssetGetList_InputVariable>
    When I try to add the filters I get the error message as
    **INPUT:**
    <temp_AssetGetList_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters">
    -<AssetGetList xmlns="http://api.services.xerox.com">
    -<request>
    <APIKey xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">1130a5ff-d41b-4e55-becc-f572046ff231</APIKey>
    <AccountID xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">58c6d7e4-5b7e-4cfe-acf5-f1997284ed72</AccountID>
    -<Filters xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:xer="http://schemas.datacontract.org/2004/07/Xerox.MPS" xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS">
    -<arr:anyType xmlns="http://www.w3.org/2001/XMLSchema-instance" type="xer:DateRangeFilterParameter">
    <xer:ColumnName>ModifiedDate</xer:ColumnName>
    <xer:EndDate>2011-11-08T17:31:00</xer:EndDate>
    <xer:StartDate>2011-10-02T20:31:00</xer:StartDate>
    </arr:anyType>
    </Filters>
    </request>
    </AssetGetList>
    </part>
    </temp_AssetGetList_InputVariable>
    OUTPUT
    <fault>
    -<SerializationFaultFault xmlns="http://api.services.xerox.com">
    -<part name="detail">
    -<SerializationFault xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS.Faults" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <Code xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS.Faults" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">300</Code>
    <Message xmlns="http://schemas.datacontract.org/2004/07/Xerox.MPS.Faults" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    Element anyType from namespace http://schemas.microsoft.com/2003/10/Serialization/Arrays cannot have child contents to be deserialized as an object. Please use XmlNode[] to deserialize this pattern of XML.
    </Message>
    </SerializationFault>
    </part>
    </SerializationFaultFault>
    </fault>
    I want to add filters to this by passing the values to the DateRangeFilterParameter. I am trying to assign the StartDate and EndDate values using copy operation but was unable to do so.
    Please let me know if you need any other information regarding this.
    Could you please help me as how I need to pass these values of ComplexType in BPEL.Thanks for your time.
    Thanks
    Murthy

    To add new child nodes to a parent node, you should use append, insert-before or insert-after operations in the assign activity.
    Serkan

  • Assign Activity modelling in BPMN

    Hi All,
    I am new to BPMN. I wanted to know if it is possible to model Assign activity in BPMN similar to the way it is modelled in BPEL?
    For example if I have to assign a value to a User task payload within the BPMN flow, is there any actiivty which would do this.

    BPM activities are generally to model the process/user task flow. However you can do various things using the methods that you can define in a process. You can write your java code or a simple PBL to assign values to variables.
    Within the process you can update a variable using the 'AutomaticActivity' and just writing variableA="newValue", or you can also use the interactive activity with the main task defined to a method and writing the same code as above in this method.

  • BPEL Assign Activity XPath failure

    Hi,
    My BPEL process fails during the Assign activity and it is failing because the Query expression does not find the 'from' element. Which makes sense because for one my test cases I am not including a value for that element in the XML instance. My question - How do I handle this situation such that when the 'from' element is either missing or has no value then nothing gets assigned to the target variable?
    ******* Error Message from BPEL PM Assign audit *****************
    [2009/05/14 21:37:45] Error in evaluate <from> expression at line "127". The result is empty for the XPath expression : "/ns2:CRMODAccounts/ns2:CRMODContactID".less
    oracle.xml.parser.v2.XMLElement@1a1d727
    [2009/05/14 21:37:45] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    - <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    - <part name="summary">
    <summary>
    empty variable/expression result.
    xpath variable/expression expression "/ns2:CRMODAccounts/ns2:CRMODContactID" is empty at line 127, when attempting reading/copying it.
    Please make sure the variable/expression result "/ns2:CRMODAccounts/ns2:CRMODContactID" is not empty.
    Possible reasons behind this problems are: some xml elements/attributes are optional or the xml data is invalid according to XML Schema.
    To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page.
    </summary>
    </part>
    </selectionFailure>
    *********************** section from bpel source for the assign function ****************
    <assign name="assignEBSAccountDetails">
    <copy>
    <from variable="inputVariable" part="payload"
    query="/ns2:CRMODAccounts/ns2:CRMODAccountID"/>
    <to variable="invokeEBSAccountDetails_GetEBSAccountDetailsPL_InputVariable"
    part="InputParameters"
    query="/ns3:InputParameters/ns3:P_CRMOD_ACCOUNT_ID"/>
    </copy>
    (versions) BPEL PM 10.1.3.4.0 JDev 10.1.3.4
    thanks,
    ilyas

    Use a switch, e.g. if string-lenght(/ns2:CRMODAccounts/ns2:CRMODContactID) > 0
    or you can do a transform and put an if condition for the mapping using the same code.
    cheers
    James

  • Transfer value from global automatic activity in Aqualogic BPM Suite

    Hi, I am new to Aqualogic BMP suite and stuck with the following problem :
    In aqualogic bpm suite, if we are setting some values to some variables in a global automatic activity in a process how to get those values back in some other activities (say an Interactive activity) in the same process or how to assign the values to some instance variables in the Begin activity ??
    We have a scenario where we are creating some process instances from the Global Automatic activity using the following :
    args["name"] = abc
    create ProcessInstance using parameters = args
    Now how to get the value "abc" and assign this value to an instance variable in the Begin activity(/access the value "abc" in an interactive activity)within the same process.
    Thanks,
    Suman.

    Hi,
    Let's say you have an Argument Set defined in your Begin activity called BeginIn. The arguments in this Argument Set can be "a", "b" and "c" of type String, Int and boolean accordingly.
    If you want to use the ProcessInstance.create method, then you would need to have a PBL script like this one:
    args[] = [ "a" : "SomeStringLiteral", "b" : 1234, "c" : true ];
    ProcessInstance.create(processId : "/MyProcess", arguments : args, argumentsSetName : "BeginIn");
    HTH,
    eduardoc.

  • Issues with Assign activity

    I am trying to assign a value(string) from an element of one variable, to an attribute of an element in another.
    I then test the process and get an error on this activity. The message says:
    XPath query string returns zero node.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity &amp;lt;to&amp;gt; part query should not return zero node.
    Please check the BPEL source at line number "162" and verify the &amp;lt;to&amp;gt; part xpath query.
    Any thoughts or suggestions?
    Thanks,
    Matthew

    Matthew,
    I don't know if this is the problem you're having, but I can take a guess at one possible cause: you are using a variable, or part of a variable, before it has been instantiated.
    I apologise in advance for this long-winded explanation. :)
    I hope you know Java because I'll use an example from that to illustrate my point. Take this (psuedocode) example where we have some code that wants to use a complex type of class Person:
    class MyClass
      private class Person
        public String nameOfPerson;
        public int    age;
      private void someMethod()
        Person ppp;
        ppp.nameOfPerson = "Homer Simpson";
        ppp.age  = 38;
    }Hopefully you realise that this will fail. That's because even though ppp is of type Person, you can't start using the data structures it contains because they haven't been created yet. That is, it hasn't been instantiated. Instead, the variable creation line can look like this:
    Person ppp = new Person();Now memory has been set aside and the data structures are created. There are empty "slots" for name and age and you can start populating those fields.
    If that makes sense to you then you should understand how that pertains to BPEL and your problem.
    The thing that's going on with BPEL variables is much the same, except that they are based on XML, which adds some difficulty. In Java, a variable has just a value. e.g. ppp.nameOfPerson = "Homer Simpson". But in XML, you have an element name and an element value. The XML (again, psuedocode) equivalent might be myVar = "<nameOfPerson>Homer Simpson</nameOfPerson>". And you can't put in the "Homer Simpson" until the <nameOfPerson> slot exists.
    In our BPEL solution, we do something nice for you which most people don't even realise. We initialise your variables for you. But -- and here's the catch -- not in all circumstances.
    Imagine our schema is this (everything in this post is psuedocode and not meant to be exact):
    <element name="Person">
      <complexType>
        <sequence>
          <element name="nameOfPerson" type="string"/>
          <element name="age" type="int"/>
        </sequence>
      </complexType>
    </element>Suppose our BPEL variable is called pppB (to differentiate it from the Java example, above). In your BPEL process you essentially declare your variable of that type:
    <variable name="pppB" type="Person"/>Just like in the Java example above, you can't then simply do an <assign> because the variable hasn't been initialised. Except that you can because we automatically initialise the variable for you! In every programming language a complex variable has to be instantiated or initialised before it can be used. Usually you have to do it explicitly yourself. Some, like in our case, do it for you automatically.
    For example, if you want to do XML operations in Java, you have to do something like the following (and this is very psuedocode!):
    Document doc = createNewDocument();
    Element pppE = createNewElement();
    pppE.setNodeName = "Person";
    Element nameE = createNewElement();
    nameE.setNodeName = "nameOfPerson";
    nameE.setNodeValue = "Homer Simpson";
    Element ageE = createNewElement();
    ageE.setNodeName = "age";
    ageE.setNodeValue = "38";
    pppE.addChild(nameE);
    pppE.addChild(ageE);Note that you cannot assign a value to a node until is created. Also, in general, you can't work with a node unless the parent nodes also exist. The following won't work:
    Document doc = createNewDocument();
    Element pppE = createNewElement();
    pppE.setNodeName = "Person";
    Element nameE = pppE.getChild("nameOfPerson")
    nameE.setNodeValue("Homer Simpson");That's because even though the Person node was created, no child nodes were. The following would work:
    Document doc = createNewDocument();
    Element pppE = createNewElement();
    pppE.setNodeName = "Person";
    Element nameE = createNewElement();
    nameE.setNodeName = "nameOfPerson";
    nameE.setNodeValue = "Homer Simpson";
    pppE.addChild(nameE);
    Element newName = pppE.getChild("nameOfPerson");
    newName.setNodeValue("Homer J. Simpson");Now returning back to BPEL, you have your variable:
    <variable name="pppB" type="Person"/>Normally you could not do such an assign because the variable hasn't been initialised:
    <assign name="addName">
      <copy>
        <from expression="string('Homer Simpson')"/>
        <to   variable="pppB" query="/ns1:Person/ns1:nameOfPerson"/>
      </copy>
    </assign>Except that with our solution you can because we are nice and do the initialisation for you automatically. People don't realise this and take it for granted, which leads to the problem you are having.
    However we don't always instantiate the variable for you. And one time we don't is when a variable is passed in. Suppose the BPEL process took a Person element as it's input:
    <variable name="inputVariable" messageType="ns1:PersonMessage"/>and PersonMessage resolved to a Person element.
    Now suppose you invoke the BPEL process with the following:
    <Person>
      <nameOfPerson>Homer Simpson</nameOfPerson>
    </Person>(Assuming that the <age> element is optional, as defined in the schema.)
    Now your BPEL process is started and inputVariable looks like this, as expected:
    <Person>
      <nameOfPerson>Homer Simpson</nameOfPerson>
    </Person>So if you then try to do an <assign> and set the age like this:
    <assign name="addName">
      <copy>
        <from expression="string('38')"/>
        <to   variable="inputVariable" query="/ns1:Person/ns1:age"/>
      </copy>
    </assign>you're going to get an error because that element does not exist. There is nowhere to put the value for age because the node for age doesn't exist! To be more precise, the query "/ns1:Person/ns1:age" returns null because there is no such element. This results in your error:
    The assign activity <to> part query should not return zero node.
    A zero node is like saying null here.
    This is what I meant above when I said XML is different from "normal" variables that we're used to. You have to have both a node and a value, whereas a variable in Java, say, only has a value.
    The solution to this is add the node first, then assign the value. We have a nice way that lets you do that with an append. In the BPEL designer you create an <assign>, then instead of a copy rule, which is what we use most of the time, you use an append. The code will look like this:
    <assign name="addAgeElement">
      <bpelx:append>
        <bpelx:from>
          <ns1:age></ns1:age>
        </bpelx:from>
      <bpelx:to variable="inputVariable" part="payload" query="/ns1:Person"/>
    </assign>The part between <bpelx:from> and </bpelx:from> is the XML you want to append. The query attribute in <bpelx:to> is where you want that XML to go. Once you've done that, you can now go and do your normal assign and set the age:
    <assign name="addName">
      <copy>
        <from expression="string('38')"/>
        <to   variable="inputVariable" query="/ns1:Person/ns1:age"/>
      </copy>
    </assign>I hope that makes sense. The code in this post is not accurate, just pseudocode to make the point.
    Regards,
    Robin.

  • An incorrect default value of account assignment group in sales order

    I created a new sales order; however, the default value for account assignment group is not the same value maintained in customer master.
    Any idea how could this happen?

    have you checked user exit MV45AFZZ? Maybe there is a coding inside, changing the default value when creating a new sales order.
    regards
    Ralf

  • Function to return the Entry Value based on Assignment, Element and Date

    Hi Guys,
    Is there a function that returns the Entry Value for the Assignment Element, based on the Assignment Number, Element Name, Entry Segment and the End of Period date?
    Example:
    ==============
    Input Parameters:
    Employee: Iana
    Assignment Num: 123
    Element: D480
    Element Entry: Fund Name
    Output Parameter:
    Element Entry Value: MLC Super Fund
    Thanks,
    Iana

    For element entry values you can use:
    select petf.element_name, nvl(peevf.screen_entry_value,0) screen_entry_value
    from
    pay_element_entries_f peef, pay_element_types_f petf,
    pay_element_entry_values_f peevf, pay_input_values_f pivf,
    per_all_assignments_f paaf
    where petf.element_type_id = peef.element_type_id
    and :p_date_earned between pivf.effective_start_date and pivf.effective_end_date
    and :p_date_earned between petf.effective_start_date and petf.effective_end_date
    and peevf.input_value_id = pivf.input_value_id
    and paaf.assignment_id = peef.assignment_id
    and petf.business_group_id = :p_business_group_id
    and peevf.element_entry_id = peef.element_entry_id
    and :p_date_earned between peef.effective_start_date and peef.effective_end_date
    and :p_date_earned between peevf.effective_start_date and peevf.effective_end_date
    and :p_date_earned between paaf.effective_start_date and paaf.effective_end_date
    and pivf.name = :p_input_value_name
    and petf.element_name = :p_element_name
    and peef.entry_type = 'E'
    and peevf.effective_start_date = peef.effective_start_date
    and peevf.effective_end_date = peef.effective_end_date
    --and peef.assignment_id = :p_assignment_id
    and paaf.assignment_number = :p_assignment_number;
    For payroll results you can use:
    select sum(prrv.result_value)
    from pay_run_results prr, pay_run_result_values prrv,
    pay_assignment_actions paa, pay_payroll_actions ppa,
    pay_element_types_f petf, pay_input_values_f pivf,
    per_all_assignments_f paaf, per_all_people_f papf
    where
    petf.element_type_id = pivf.element_type_id
    and :p_pay_date between petf.effective_start_date and petf.effective_end_date
    and :p_pay_date between pivf.effective_start_date and pivf.effective_end_date
    and paa.assignment_action_id = prr.assignment_action_id
    and petf.element_type_id = prr.element_type_id
    and ppa.payroll_action_id = paa.payroll_action_id
    and prrv.input_value_id = pivf.input_value_id
    and prr.run_result_id = prrv.run_result_id
    and petf.element_name = :p_element_name
    and pivf.name = :p_input_value_name
    and ppa.date_earned = :p_pay_date
    and papf.person_id = paaf.person_id
    and nvl(prr.start_date,ppa.effective_date) between paaf.effective_start_date and paaf.effective_end_date
    and nvl(prr.start_date,ppa.effective_date) between papf.effective_start_date and papf.effective_end_date
    and paaf.assignment_id = paa.assignment_id
    and papf.employee_number = :p_employee_number;

  • Problem with asyn bpel process assign activity

    hi
    i m creating asyn bpel process,in my assign activity,i want to copy operation.But it seems that when i expand my input variable it doesnt expand.so i m not able to copy.what would be the reason.anybody suggest me
    thanks

    works for me
    i added the xsd to my composite application
    created a new bpel in it, for input/ouput used both your elements.
    after that i added the assign and could just 'browse' the tree to both the input-element and the result-element, with this result :
        <sequence name="main">
            <!-- Receive input from requestor. (Note: This maps to operation defined in BPELProcess2.wsdl) -->
            <receive name="receiveInput" partnerLink="bpelprocess2_client" portType="client:BPELProcess2" operation="process" variable="inputVariable" createInstance="yes"/>
            <!--
              Asynchronous callback to the requester. (Note: the callback location and correlation id is transparently handled using WS-addressing.)
            -->
            <assign name="my_assign">
                <copy>
                    <from variable="inputVariable" part="payload"
                          query="/ns1:AsyncallerProcessRequest/ns1:input"/>
                    <to variable="outputVariable" part="payload"
                        query="/ns1:AsyncallerProcessResponse/ns1:result"/>
                </copy>
            </assign>
            <invoke name="callbackClient" partnerLink="bpelprocess2_client" portType="client:BPELProcess2Callback" operation="processResponse" inputVariable="outputVariable"/>
        </sequence>when you put your bpel in design mode (first tab), and the and the left bottom browse to <your process.bpel> > Variables > Process > Variables > inputVariable > payload > ns1:AsyncallerProcessRequest > input
    you do see this element ?
    at the bottom fo this window you see a checkbox "show detailed node information", in case of errors or non validation xsd's this would be usefull, but the xsd validates for me.
    any other errors you can find ?

  • Operate C# to modify PPT's hyperlink, while configuring the hyperlink's text to display attribute, the address value will be assigned as null. Anyone know this issue? Any solution?

    operate C# to modify PPT's hyperlink, while configuring the hyperlink's text to display attribute, the address value will be assigned as null.  Anyone know this issue? Any solution?
    How to reproduce the issue:
    1.Create a new PPT slide in Office2010.
    2. Insert a certain text/characters, such as Mircosoft blablabla,
    3. Insert an URL right after the text part , TextToDisplay is the “Test”,Address is the "Url".
    4. The content in the ppt is ”Microsoft Test“,here "Test" is the hyperlink which we would like to convert. Please execute the code we list below.
    5. The problem will be reproduced by the above steps.
    PPT.Application ap = new PPT.Application();
    PPT.Presentation pre = null;
    pre = ap.Presentations.Open(mFileName, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
    foreach (PPT.Slide mSlide in pre.Slides)
    PPT.Hyperlinks links = mSlide.Hyperlinks;
    for (int i = 1; i <= links.Count; i++)
    PPT.Hyperlink mLink = links[i];
    mLink.TextToDisplay = mLink.TextToDisplay.Replace(mLink.TextToDisplay,"url");
    mLink.Address = mLink.Address.Replace(mLink.Address, "url");
    Modify texttodisplay, the address vaule will be assigned as null. Anyone knows how to solve it?
    Does it caused by a PPT API's Limitation?

    I've tried the below code and it works, you can refer this article:
    https://msdn.microsoft.com/en-us/library/office/ff745021.aspx
    to find that the hyperlink needs to be associated with a text range, and thats what I did in the code below with the help of the link sent by Tony.
    Microsoft.Office.Interop.PowerPoint.Application ap = new Application();
    Microsoft.Office.Interop.PowerPoint.Presentation pre = null;
    pre = ap.Presentations.Open(@"C:\Users\Fouad\Desktop\abcc.pptx", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
    foreach (Microsoft.Office.Interop.PowerPoint.Slide mSlide in pre.Slides)
    Microsoft.Office.Interop.PowerPoint.Hyperlinks links = mSlide.Hyperlinks;
    Microsoft.Office.Interop.PowerPoint.Shape textShape = mSlide.Shapes[1];
    for (int i = 1; i <= links.Count; i++)
    Microsoft.Office.Interop.PowerPoint.Hyperlink mLink = links[i];
    Microsoft.Office.Interop.PowerPoint.TextRange range1 = textShape.TextFrame.TextRange;
    TextRange oTxtRng = range1.Find(((Microsoft.Office.Interop.PowerPoint.Hyperlink)mLink).TextToDisplay,After:range1.Start,WholeWords:Microsoft.Office.Core.MsoTriState.msoTrue);
    oTxtRng.Replace(((Microsoft.Office.Interop.PowerPoint.Hyperlink)mLink).TextToDisplay, "url");
    oTxtRng.ActionSettings[Microsoft.Office.Interop.PowerPoint.PpMouseActivation.ppMouseClick].Hyperlink.Address = "http://www.microsoft.com";
    Fouad Roumieh

  • Using assign-activity:Append to append child nodes in XML-tree within loop

    I would like to produce an XML looking something like this (just an example):
    &lt;Customer&gt;
    &lt;Name&gt;Tom&lt;/Name&gt;
    &lt;Invoices&gt;
    &lt;Invoice&gt;
    &lt;InvoiceData&gt;.....&lt;/InvoiceData&gt;
    &lt;/Invoice&gt;
    &lt;Invoice&gt;
    &lt;InvoiceData&gt;.....&lt;/InvoiceData&gt;
    &lt;/Invoice&gt;
    &lt;/Invoices&gt;
    &lt;/Customer&gt;
    For different reasons (composite PK's in DB etc) I have to first get the Customer-data, and then get each Invoice for that customer.
    Then I have to loop the Invoices and append each Invoice-node to the XML, ending up with the whole thing when the loop is finished.
    This should be pretty simple (I guess), and I have tried different variations of the Append (assign activity), but everytime I end up with only the last Invoice-node.
    I can see in the Flow-window of the BPEL Console that it is not the same Invoice-node I'm appending within the loop-iterations, so that can not be the case in any way.
    In other words it seems to copy instead of appending.
    What is wrong ?
    Is this a bug in the Append function ?
    Any suggestions to other approaches that might work ? (I have to use the loop to get 1 and 1 Invoice-node though, and in that way put the whole XML together in some way)
    Edited by: user1694182 on 09.okt.2008 05:08

    Thank you for your answer.
    After taking your "debugging"-suggestions at hand and running some tests, I can now see that it gets appended in some way, but not correctly.
    1st LOOP ROUND:
    <installation>
    <measurePoints>
    <measurePoint><measurePointId>308</measurePointId>...</measurePoint>
    </mesurePoints>
    </installation>
    Correct so far.
    2nd LOOP ROUND:
    <installation>
    <measurePoints>
    <measurePoint><measurePointId>322</measurePointId>...</measurePoint>
    <measurePoint><measurePointId>322</measurePointId>...</measurePoint>
    </mesurePoints>
    </installation>
    So now it appends the new measurepoint, but overwrites the 1st as well... Strange..
    3rd LOOP ROUND (last round):
    <installation>
    <measurePoints>
    <measurePoint><measurePointId>382</measurePointId>...</measurePoint>
    <measurePoint><measurePointId>382</measurePointId>...</measurePoint>
    </mesurePoints>
    </installation>
    So suddenly the same Append doesn't append, but overwrites the 2 I had with the new measurepoint...Strange...
    WHAT I DO IN MORE DETAIL:
    1: Assign(copy) the whole XML in the 1st loop round. (Copy - FROM: submitInstallation_InputVariable - TO: Powel_InstallationServiceInput)
    2: Within each loop round I collect the whole XML with just 1 measurePoint (TransformActivity - FROM: DBAdapter-output - TO: submitInstallation_InputVariable).
    3: Within each loop round I then append the new measurePoint (collected in step 2) to the measurePoints-node. (Append - FROM: submitInstallation_InputVariable - TO: Powel_InstallationServiceInput)
    PS! I can see in the BPEL Console that it is a new measurePoint that gets collected in step 2, and just 1 node.
    Help/tips on this is very appreciated ! :-)
    Edited by: user1694182 on 14.okt.2008 00:57

  • "xsi:type" attribute coming automatically in XML by using Assign activity

    Hi,
    I am using below copy operation in assign activity
    *<copy>*
    *<from variable="StopSeq"/>*
    *<to variable="InvokeGlog_IV" part="Transmission"*
    *query="/ns2:Transmission/ns2:TransmissionBody/ns2:GLogXMLElement/ns2:ActualShipment/ns2:Shipment    /ns2:ShipmentStop[bpws:getVariableData('SCounter')]/ns2:StopSequence"/>*
    *</copy>*
    which is copying from one local variable(StopSeq of int type ) to another variable(StopSequence of string type).
    It was working fine in SOA 11.1.1.3 and I was getting result as below
    Expected Result *<StopSequence>1</StopSequence>*
    But recently we have migrated from 11.1.1.3 to 11.1.1.5 and we started to get below output for the same assign activity.
    Current Result *<StopSequence xsi:type="ns:int">1</StopSequence>*
    Please suggest.
    Thanks

    I found one workaround for the problem,
    "<from variable="StopSeq"/>"
    As of now , StopSeq was a variable created by me in BPEL file.
    I was using this variable to do some calculations.
    As a workaround of the problem, I created a schema with "StopSeqType" as a simple int type element.
    Then inside the BPEL, I marked the the existing variable "StopSeq" as a type of "StopSeqType" of my new schema.
    After this change I found the expected result.
    Now my doubt is , Is it the case for all variables created in BPEL ?
    If yes , how we can prevent this ?

  • BPEL assign activity fault

    hi,
       Please anybody know how create human intervention recovery for sublanguageExecutionFault in assign activity.
       I assign xml file using ora:doc(file///) when file location is not correct.
       i am new for soa suite so please help.

    Hi,
    Its a Non Recoverable System Fault so you will not be able to recover it using human intervention..

Maybe you are looking for