Transorming variable in BPEL

Hi
I have an output message which is having unbounded elements(1-many).DB adapter is getting me an output which are unbounded elements from database.when i am trying to assign the o/p from DB adapter to my o/p message in bpel it's throwing error in assign as multiple nodes can't be assigned to single node.when i use transformation and keep for-each in xsl it's overriding all the existing data in that variable which is already assigned.how can i transform the data without erasing the existing data in that variable.
thanks
ravi

Can you paste the xsd definition of your output variable?
It looks like bpel doesnt recognizes your outputvariable as unbound.

Similar Messages

  • How to create a local variable in bpel?

    Hi,
    In my bpel flow I need to call service based upon a pl/sql procedure multiple times. The procedure returns the results of a query in chunks and contains a boolean as an output parameter that tells me whether there are any more records that need to be fetched based upon which I will be calling the service again. I want to achieve this using a while loop. So for the while loop condition I am thinking of creating a local variable in the bpel process and assign it an initial value of false(). Then once the service is called I will set the value of this variable to the output boolean parameter returned by the procedure. So while the boolean is true the service will be called again.
    My question is how can I create a local variable in bpel and assign it an initial value of false. Or is there any other way that this can be achieved?
    Thanks!!

    Hello! thanks for yr response.
    I tried creating a new variable by defining a scope. But in the create variable window I cannot define a standalone variable of boolean type I need to pick up the type from an lov that brings up a list of all existing variable! so basically u are just mapping to an existing variable which in my case will not work because I will need to map to one of the elements of the output of the pl/sql procedure based service -- also this element itself is not exposed in the lov only the name "inputParameters" is displayed as the element --all the contents are not exposed.
    Any suggestions?
    Thanks!

  • Creating a dynamic variable in bpel process

    hi
    I have a requirement i.e. how to create a dynamic variable in bpel process?
    Help me out with this....thanks.

    Open your bpel and look for and icon that looks like this... (x)
    http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_gsbpel.htm#CIADACJJ

  • How to change the value of variable in .bpel file

    Hi,
    How can i change the value of variable in .bpel file at time of deployment.
    Can it be possible with configplan.xml or deployment descriptor?
    Thanks
    Richa

    You cannot change the value of variable in .bpel file using config plan. If you want to change value at runtime , you can use Preference variable. Below is the blog to help you understand more.
    http://eelzinga.wordpress.com/2009/10/28/oracle-soa-suite-11g-setting-and-getting-preferences/
    Cheers,
    Durga
    Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.

  • How to COmpare two variable in BPEL

    Hi ,
    I have two compare two variable ( EIN field ) one from input variable of a BPEL process and other one the output variable of a invoke .
    My requiremet is like this :
    If the the value of both EIN field is same then I have to assign Name field of Invoke output parameter to Output variable of BPEL process .
    If the value doesn't match then i have to assign ' No Data Exist ' expression to Output variable of BPEL process .
    How can i do this .
    Please help me regarding this as early as possible .

    You can do this in a switch statement. Perform a comparision to check if the values are the same, if case is not important (because users will enter anything) wrap the code in a case expression, e.g. upper(user_date) = upper(file_data)
    What version of SOA Suite and JDev are you using. Make sure that these versions are in sync.
    cheers
    James

  • Use of boolean variables in BPEL switch statements

    I have a workflow with a single boolean input parameter:
    <element name="input" type="boolean"/>
    I wish to use a switch statement within the workflow, based on the value of that boolean parameter.
    When I use the following XPath expression:
    bpws:getVariableData("input","payload","/tns:BooleanRequest/tns:input")
    I get the correct functionality, although I get the following BPEL compiler warning:
    " [bpelc] [Warning ORABPEL-10078]: return value of this expression may not be a boolean
    [bpelc] [Description]: in line 35 of "C:\eclipse\workspace\Boolean\Boolean.bpel", xpath expression "bpws:getVariableData("input","payload","/tns:BooleanRequest/tns:input")" used in <switch> may not return boolean type value, the xpath engine would automatically try to convert the return value to boolean..
    [bpelc] [Potential fix]: Please use one of the built-in boolean functions from xpath http://www.w3.org/TR/xpath#section-Boolean-Functions to convert the return value to boolean.."
    However, the boolean functions referenced do not appear to be relevant to a variable which is already of a boolean type. If I attempt to use the boolean() function in my XPath expression, I get rid of the compiler error, but the workflow now does not work as required.
    How can I get rid of the compiler warning and still get the required functionality, and/or am I doing the wrong thing?
    I am currently running on JBoss, with BPEL release 2.1.2 [build #1226].
    Thanks for any help or ideas.

    Hi Marlon,
    Thanks for that - I guess we have to accept the vagaries of XPath and the absence of type-checking for variables.
    I hadn't fully understood until I started investigating that I can assign ANY string to variable of type xsd:boolean, which has been the cause of some of the confusion for me - whether that value is then considered true or false depends on how you write your test condition.
    I tried with your condition, and it didn't seem to work (evaluated to true if the variable data was the string "true()", but otherwise it seemed to always evaluate to false.
    I also tried the following:
    condition="bpws:getVariableData('booleanVariable')=true()"
    but that evaluates to true for any string of length > 0.
    The only one I can get to consistently work is:
    condition="bpws:getVariableData('booleanVariable')=string(true())"
    although that means that variable data of "TRUE" will evaluate to false (may well be the correct behaviour, depending on how you're setting the boolean variable in the first place).

  • Copying Variables in BPEL using XPath Query

    Hi,
    I am new to BPEL and i want to know if it is possible to copy data from one variable to another using XPath Query in the <from> <to> tags, when the two variables are of different message types.
    I am trying to create a sample BPEL that would receive a String through the receive tag tied to one partner link (WSDl) and then invoke a different webservice using the <invoke> tag tied to another partner link (WSDL) by passing the received variable.
    I have pasted the BPEL File and the two WSDl files involved.
    My Issue is that when I send a soap request to the BPEL, it is passed as null to the webservice invoked.
    Probably because the copy tags don't work.
    Please help.
    BPEL File
    <!--
    ~ Licensed to the Apache Software Foundation (ASF) under one
    ~ or more contributor license agreements. See the NOTICE file
    ~ distributed with this work for additional information
    ~ regarding copyright ownership. The ASF licenses this file
    ~ to you under the Apache License, Version 2.0 (the
    ~ "License"); you may not use this file except in compliance
    ~ with the License. You may obtain a copy of the License at
    ~
    ~ http://www.apache.org/licenses/LICENSE-2.0
    ~
    ~ Unless required by applicable law or agreed to in writing,
    ~ software distributed under the License is distributed on an
    ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    ~ KIND, either express or implied. See the License for the
    ~ specific language governing permissions and limitations
    ~ under the License.
    -->
    <process name="HelloWorld2"
    targetNamespace="http://ode/bpel/unit-test"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:tns="http://ode/bpel/unit-test"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:test="http://ode/bpel/unit-test.wsdl"
    xmlns:ns0="http://poc.com"
    queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
    expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
    <import location="HelloWorld2.wsdl"
    namespace="http://ode/bpel/unit-test.wsdl"
    importType="http://schemas.xmlsoap.org/wsdl/" />
    <import location="sayHello.wsdl"
    namespace="http://poc.com"
    importType="http://schemas.xmlsoap.org/wsdl/" />
    <partnerLinks>
    <partnerLink name="helloPartnerLink"
    partnerLinkType="test:HelloPartnerLinkType"
    myRole="me" />
    <partnerLink name="sayHelloBPELPL"
    partnerLinkType="ns0:sayHelloPLT"
    partnerRole="you" initializePartnerRole="yes" />
    </partnerLinks>
    <variables>
    <variable name="myVar" messageType="test:HelloMessage"/>
    <variable name="tmpVar" messageType="test:HelloMessage"/>
    <variable name="inVar" messageType="ns0:sayHelloRequest"/>
    <variable name="outVar" messageType="ns0:sayHelloResponse"/>
    </variables>
    <sequence>
    <receive
    name="start"
    partnerLink="helloPartnerLink"
    portType="test:HelloPortType"
    operation="hello"
    variable="myVar"
    createInstance="yes"/>
    <assign name="ass1">
    <copy>
    <from variable = "myVar" part = "TestPart"/>
    <to variable = "inVar"
    part = "parameters"
    query= "/sayHello/ns0:param0" />
    </copy>
    </assign>
    <invoke partnerLink = "sayHelloBPELPL"
    portType = "ns0:sayHelloPortType"
    inputVariable = "inVar"
    operation = "sayHello"
    outputVariable = "outVar">
    </invoke>
    <assign name="ass2">
    <copy>
    <from variable = "outVar"
    part = "parameters"
    query= "/sayHelloResponse/ns0:return" />
    <to variable = "tmpVar" part="TestPart"/>
    </copy>
    </assign>
    <reply name="end"
    partnerLink="helloPartnerLink"
    portType="test:HelloPortType"
    operation="hello"
    variable="tmpVar"/>
    </sequence>
    </process>
    WSDL File1
    <?xml version="1.0" encoding="utf-8" ?>
    <!--
    ~ Licensed to the Apache Software Foundation (ASF) under one
    ~ or more contributor license agreements. See the NOTICE file
    ~ distributed with this work for additional information
    ~ regarding copyright ownership. The ASF licenses this file
    ~ to you under the Apache License, Version 2.0 (the
    ~ "License"); you may not use this file except in compliance
    ~ with the License. You may obtain a copy of the License at
    ~
    ~ http://www.apache.org/licenses/LICENSE-2.0
    ~
    ~ Unless required by applicable law or agreed to in writing,
    ~ software distributed under the License is distributed on an
    ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    ~ KIND, either express or implied. See the License for the
    ~ specific language governing permissions and limitations
    ~ under the License.
    -->
    <wsdl:definitions
    targetNamespace="http://ode/bpel/unit-test.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://ode/bpel/unit-test.wsdl"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
    xmlns:ns0="http://poc.com">
    <wsdl:message name="HelloMessage">
    <wsdl:part name="TestPart" type="xsd:string"/>
    </wsdl:message>
    <wsdl:portType name="HelloPortType">
    <wsdl:operation name="hello">
    <wsdl:input message="tns:HelloMessage" name="TestIn"/>
    <wsdl:output message="tns:HelloMessage" name="TestOut"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloSoapBinding" type="tns:HelloPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="hello">
    <soap:operation soapAction="" style="rpc"/>
    <wsdl:input>
    <soap:body
    namespace="http://ode/bpel/unit-test.wsdl"
    use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body
    namespace="http://ode/bpel/unit-test.wsdl"
    use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloService">
    <wsdl:port name="HelloPort" binding="tns:HelloSoapBinding">
    <soap:address location="http://localhost:8082/ode/processes/helloWorld"/>
    </wsdl:port>
    </wsdl:service>
    <plnk:partnerLinkType name="HelloPartnerLinkType">
    <plnk:role name="me" portType="tns:HelloPortType"/>
    <plnk:role name="you" portType="tns:HelloPortType"/>
    </plnk:partnerLinkType>
    </wsdl:definitions>
    WSDL File 2
    <?xml version="1.0" encoding="UTF-8" ?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:ns0="http://poc.com"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:ns1="http://org.apache.axis2/xsd"
    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
    targetNamespace="http://poc.com">
    <wsdl:types>
    <xs:schema xmlns:ns="http://poc.com" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://poc.com">
    <xs:element name="sayHello">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="param0" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="sayHelloResponse">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="return" nillable="true" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="sayHelloRequest">
    <wsdl:part name="parameters" element="ns0:sayHello" />
    </wsdl:message>
    <wsdl:message name="sayHelloResponse">
    <wsdl:part name="parameters" element="ns0:sayHelloResponse" />
    </wsdl:message>
    <wsdl:portType name="sayHelloPortType">
    <wsdl:operation name="sayHello">
    <wsdl:input message="ns0:sayHelloRequest" wsaw:Action="urn:sayHello" />
    <wsdl:output message="ns0:sayHelloResponse" wsaw:Action="urn:sayHelloResponse" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="sayHelloSOAP11Binding" type="ns0:sayHelloPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
    <soap:operation soapAction="urn:sayHello" style="document"/>
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="sayHello">
    <wsdl:port name="sayHelloPort" binding="ns0:sayHelloSOAP11Binding">
    <soap:address location="http://localhost:8082/ode/processes/sayHello" />
    </wsdl:port>
    </wsdl:service>
    <plnk:partnerLinkType name="sayHelloPLT">
    <plnk:role name="me" portType="ns0:sayHelloPortType"/>
    <plnk:role name="you" portType="ns0:sayHelloPortType"/>
    </plnk:partnerLinkType>
    </wsdl:definitions>

    Hi,
    Yes, it very much is possible.
    Xpath query provides a lot many data type conversion functions(string to int, string to date etc), which can be used in copying variables.
    thanks
    Saurabh

  • Can we define 'Static Variables' in BPEL process ?

    Is the idea of 'STATIC VARIABLES' supported in Oracle BPEL?
    What I mean by that is, I need all my in-flight BPEL process INSTANCES to read a common variable and then decide the next course of action.
    Is this possible?
    Thanks in advance,
    Mahendra

    Hi Hans,
    In Cocoa and Objective-C a static variable needs to be declared in the implementation file and not the header as you would normally do. Standard C variables can be set at the same time as the declaration but Cocoa objects need an extra step.
    For example:
    #import "TestObject.h"
    // declare your static variable here
    static NSArray *count;
    @implementation TestObject
    - (id) init {
    self = [super init];
    if (self != nil) {
    // set the variable here
    // the 'if' statement ensures it is only set once
    if (!count) {
    count = [[NSArray arrayWithObjects:@"One",@"Two",@"Three",Nil] retain];
    return self;
    @end
    Hope this helps,
    Martin.
    PowerMac G5 1.6Ghz   Mac OS X (10.4.9)   4 gig RAM & NVidia 6800 Ultra

  • How to handle empty variable in BPEL Assign.

    Hello ,
    I am using SOA 11g R1
    I have created one Human task with task Details. Also i am assigning the Usercomments/task/comments to onw of my variable, but if I dont provide the comments from worklist comments section, and approves the task, My Assign is giving error as it is empty. So i want to know is there any function in BPEL which can handle Empty string.
    Thank you,
    Sandeep

    By using this type
    bpws:getVariableData('Invoke_DB_WorkOrderNumber_DB_WorkOrderNumber_OutputVariable','OutputParameters','/ns10:OutputParameters/ns10:P_Name')
    !=''
    also i cant give counts because before comparing accessing variable itself gives empty <message fault > error.
    I am still getting selection failure fault as my comments is empty (i..e I am not giving comments)
    does bpws:getVariableData() itself try to access the given parameter and populates empty error.?
    I tried
    bpws:getVariableData('AssigneeApprovalProcess_1_globalVariable','payload','/task:task/task:userComment/task:comment') !=''
    string-length(bpws:getVariableData('AssigneeApprovalProcess_1_globalVariable','payload','/task:task/task:userComment/task:comment') )>0
    but same error still.

  • SoapServerUrl variable in BPEL Admin for TCP tunneling

    Hi,
    I have read the BPEL Techincal note 1 to view SOAP messages by using TCP tunneling. It works great when you change the location in bpel.xml for the partnerlink. But soap-server-url property is not working for me.
    I was wondering if there is an easier way to see all BPEL operations rather than adding a location property to all partnerLinks in bpel.xml in all processes to change the port.
    I thougt I could get it with the soapServerUrl property in the BPEL Admin, but I think it is not working properly. Any help or comment is welcome.
    I changed the variable from http://myhost:9700 to http://myhost:2222 and restarted the server, just in case. In the BPEL Processes tab of BPEL Console I clicked Clear WSDL Cache.
    If now I go to the Dashboard, click my process, go to the WSDL tab, I get this:
    WSDL location:
    http://myhost:2222/orabpel/default/Buyer/1.0/Buyer?wsdl
    Endpoint location:
    http://myhost:2222/orabpel/default/Buyer/1.0
    This is exactly what I want. But there are two problems:
    - The WSDL link goes actually to 9700, only the text is changed. This is a minor problem.
    - The endpoint in the WSDL file is still going to 9700. So when I use the BPEL Console to run a new instance, it uses this information and does not go to 2222 port.
    So it looks like if the variable is just being used for some cases.
    Any help about changing the endpoint port for all BPEL proccesses would be appreciated.
    I am using the latest version and all patches.

    You can generate a plan for each instance.
    For example in build.xml add something like this:
    <target name="Generate_Deployment_Plans"
            depends="validateTask, compile, Generate_DEV, Generate_TEST, Generate_PROD"/>
        <target name="Generate_DEV">
            <generateplan planfile="DPlan_DEV.xml"
               verbose="true" overwrite="false" descfile="${process.dir}/bpel/bpel.xml"/>
        </target>
        <target name="Generate_TEST">
            <generateplan planfile="DPlan_TEST.xml"
               verbose="true" overwrite="false" descfile="${process.dir}/bpel/bpel.xml"/>
        </target>
        <target name="Generate_PROD">
            <generateplan planfile="DPlan_PROD.xml"
               verbose="true" overwrite="false" descfile="${process.dir}/bpel/bpel.xml"/>
        </target>Not sure if this is what you are asking for though.

  • Compare two complex variables with BPEL ?

    Hi,
    I would like to compare 2 csv files with BPEL, with specific rules. For example, I would like to check that for each row : "Value of Field1 of File1" has less than a 10% difference with "Value of Field1 of File2"
    I can successfully retrieve the content of the files, thanks to the following thread : Help! Three questions about FileAdapater. . Now the files are in 2 variables.
    What is the right method to compare the variables, row by row with this kind of specific validation rules ? Should I handle it with a Java call ? Especially, where should be the loop on rows : in BPEL (if so : how ?) or Java ?
    Regards,
    Alexandre
    Message was edited by:
    Alexandre

    I suggest having a look at the Array sample (orabpel\samples\tutorials\112.Arrays)
    that shows how to loop through an array.
    Whether to do this in BPEL of Java depends on a lot of circumstances, but I suggest giving this a try first.

  • Couldn't use variables in bpel code[JCAPS 511 einsight]

    Hi,
    In JCAPS 5.1.1 BPEL code, when i manually add
    <variables>
    <variable/>
    </variables>
    at time of saving it got wiped off or it is getting deleted automatically.
    Please advice me how to add <variables> tag in BPEL code.
    Regards
    Venkatesh.S

    I suspect you are looking for ways of adding equivalent of variables.
    In eInsight, which is BPEL 1.0-compliant, you use the so-called Business Process Attributes. Right-click on the name of teh business process in the project explorer. Choose properties. Choose "business Process attributes" tab. Click "Add". name the attribute, choose the "simpletypes" namespace and choose the data type. Apply. Open the BP. You should have a "variable" of the chosen type showing up in the mapping tree when you select "show all".
    Does this help?

  • How to refresh the variable in BPEL

    Hi everybody,
    Can anyone give me any idea, how a variable can be refreshed in BPEL. Sometimes, perhaps, it retains the old value and thats why new value is not being reflected.
    Thanks in advance.
    Chandrachur.

    Hi Matej,
    Thanks for your reply. Could you please refer to the question(subject line: *'Facing problem while catching the return output from webservice'*) which I posted today. There I have summarised my problem. Please feel free to ask me regarding this.
    Regards,
    Chandrachur.

  • How to convert element to mesasge type variable in BPEL

    Hi,
    I have xml message in element type variable. I want to create one variable of message type and have same elements values what element type variable has.
    I modified my xsd and created of same type like element namespace. Now when i use assign activity to copy from top root another top root. I get error Variable not initialized.
    How to correct?
    My XML message is like
    <CMISAPPL>
    <APPLICANT_FULL_NAME>Abhi</APPLICANT_FULL_NAME>
    <MANAGER_FULL_NAME>Jack</MANAGER_FULL_NAME>
    <INTERVIEWER_FULL_NAME>jack</INTERVIEWER_FULL_NAME>
    <JOB_TITLE>Test</JOB_TITLE>
    <INTERVIEW_DATE>2-Oct-2007</INTERVIEW_DATE>
    <PASSED_DAYS>5</PASSED_DAYS>
    <INT_SCH_PROFILE_VALUE>1,2,4,7</INT_SCH_PROFILE_VALUE>
    <FILE_PATH_PROFILE_VALUE/>
    <PAPERWORK_REQ_SEGMENTS_VALUE/>
    <PAPERWORK_REQ_SEGMENTS_NAME>App test</PAPERWORK_REQ_SEGMENTS_NAME>
    <VACANCY_NAME>test</VACANCY_NAME>
    <INTERVIEWER_EMAIL>t</INTERVIEWER_EMAIL>
    <INTERVIEWER_MANAGER_EMAIL>t</INTERVIEWER_MANAGER_EMAIL>
    </CMISAPPL>

    Looks like a namespace issue. There is no namespace defined in your payload.
    Marc
    http://orasoa.blogspot.com

  • Maximum number of characters for a BPEL string variable

    Hi,
    What is the maximum numbers of characters that a string variable in BPEL process can hold??.
    Is there any document which describes the datatypes in BPEL.
    Regards
    V Kumar

    Trick question - with or without the use of the FM GUI?
    1. Via the FM interface to define a variable, FM will only save the first 1022 characters of your variable definition - if you dare try to enter that many via the GUI dialogue slot.
    2. Importing a variable via MIF, adds virtually any length - I've tested out 2510 characters. HOWEVER, FM will only display the first 1023 characters of this string.
    If you save the file to MIF, you can still see the original length of the variable. The other caveat is that if you touch any of these long variables via the FM GUI (Edit Variables), then FM will truncate it down to 1022 characters - regardless of how you save (binary or MIF).
    FWIW - Klaus Daube lists (see: http://daube.ch/docu/fmaker25.html ):
    Until FM 7.2: up to 255 characters including meta-notations (such as <Default ¶ Font> or \t - this counts as 16 resp. 2 characters). See also note Variables below
    From FM 8.0: up to 2023 Windows Codepage characters or up to 2022 UTF-8 characters
    I'd say that this is not quite correct. You could enter more than 255 prior to FM 7.2 as well, but again the display issue via the GUI kicked in and truncated down to 255. The newer versions only display 1022/1023 but you can enter more than 2510 characters (which in this case is futile anyway).

Maybe you are looking for