This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 146718

Summary: Usability issue in defining the property attribute of the getVariableProperty functiod
Product: soa Reporter: pvarghese <pvarghese>
Component: BPELAssignee: Alexey Anjeleevich <anjeleevich>
Status: NEW ---    
Severity: blocker CC: alexeyyarmolenko
Priority: P2    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:
Attachments: project
comp app project
log file

Description pvarghese 2008-09-09 22:49:41 UTC
When fixing some runtime bugs, came across this usability issue in defining the property(the second) attribute of the
getVariableProperty() functiod on the bpel mapper.

1. The user has to enter the name, by going to the WSDL file to find the property name and then look into the bpel
source code to find out what is the prefix alloted to that WSDL document namespace (if it is already imported into the
bpel file) and then enter them here in the mapper field.

2. There could also be the possibility that the property (and the propertyAlias) could be defined in a separate WSDL
file that is not imported yet, in this case the user has to go through the hoops of first importing the WSDL file in the
BPEL and doing the same as mentioned in point 1. 

Could you provide a click-able action on the second attribute of the functiod that will pop up a property field chooser
that the user can select and all the necessary actions can be done behind the scene?

The same is done for defining a correlation set in the BPEL, which has a property node chooser, this same node choose
could be popped up for the functiod too.

On a lesser vein, the first attribute could have a tooltip that states "map a variable to this attribute" as its not
intuitive that the user should  map a variable directly to a attribute named "String".
Comment 1 pvarghese 2008-09-09 22:51:05 UTC
comment from Murali

In addition we need a consistent user experience for both NM Properties and Variable properties. I feel both can be
shown under properties node of a variable, as done for NM properties. I do not see any need for "getVariableProperty" 
functiod.
Comment 2 ggenipudi 2008-09-10 22:16:15 UTC
project created using simple XSD:string and property failed during runtime with null pointer exception because the
prefix in WSDL was defined as tns and it was not imported in BP.
please see the email below for details.

Geetha Genipudi wrote:
> This is not a user error. I used the get property from the mapper and added the prefix tns as defined in the WSDL.
>
> Why should the user edit and add xmlns:ns1="http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL"
<http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL>  in Bpel ?
> Thanks
> Geetha
>
>
>
> Philip Varghese wrote:
>> Geetha,
>> The issue is in the bpel file, as i explained in the bpel file the assignment <from> had the name of the property as
>> <from>ns0:getVariableProperty('MytestWSDLOperationIn', 'tns:Stringprop')</from>
>>
>> Here the tns was referring to the bpel process namespace and not the namespace of the wsdl where the property is defined.
>> xmlns:ns1="http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL"
<http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL>
>> That is why i corrected the <from> statement to
>>
>> <from>ns0:getVariableProperty('MytestWSDLOperationIn', 'ns1:Stringprop')</from>
>>
>> and added the namespace attribute "to the process tag in the bpel file. With this change the test case will work as
expected.
>>
>> This is an user error, and should be addressed as part of the usability bug
<http://www.netbeans.org/issues/show_bug.cgi?id=146718> that i filed in issuzilla on netbeans.org.(your scenario is the
point 2 in the bug). In addition i have filed a bpel editor validation bug
<http://www.netbeans.org/issues/show_bug.cgi?id=146846> for the same.
>>
>> In addition we will be making a change at runtime to make sure that in the event the user types in values in the
source view , and if the the property name is not correctly defined then we will throw a complaint bpel fault at
runtime, however we have not decided what the fault will be, however once the usability and validation bug is fixed the
editor would ensure the integrity/correctness of the property name.
>>
>> -Philip
>>
>> Geetha Genipudi wrote:
>>> Philip, Where is ns1 prefix defined? I looked up the WSDL and the property has prefix tns.
>>>
>>>
>>> <plnk:partnerLinkType name="mytestWSDL">
>>>        <!-- A partner link type is automatically generated when a new port type is added. Partner link types are
used by BPEL processes.
>>> In a BPEL process, a partner link represents the interaction between the BPEL process and a partner service. Each
partner link is associated with a partner link type.
>>> A partner link type characterizes the conversational relationship between two services. The partner link type can
have one or two roles.-->
>>>        <plnk:role name="mytestWSDLPortTypeRole" portType="tns:mytestWSDLPortType"/>
>>>    </plnk:partnerLinkType>
>>>    <vprop:property name="Stringprop" type="xsd:string"/>
>>>    <vprop:propertyAlias propertyName="tns:Stringprop" messageType="tns:mytestWSDLOperationRequest" part="part1"/>
>>> Thanks,
>>> Geetha
>>> Philip Varghese wrote:
>>>> Hi Geetha,
>>>> This is an user error in the bpel-se assignment, the name of the property in the getVariableProperty() function is
given as "tns:Stringprop"
>>>> <from>ns0:getVariableProperty('MytestWSDLOperationIn', 'tns:Stringprop')</from>
>>>> The prefix tns refers to the bpel document namespace, this is wrong as the property name is defined in the wsdl and
the prefix should point to the wsdl namespace.
>>>>
>>>> I corrected this as follows
>>>> <from>ns0:getVariableProperty('MytestWSDLOperationIn', 'ns1:Stringprop')</from>
>>>> and xmlns:ns1="http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL"
<http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL> <http://j2ee.netbeans.org/wsdl/testgetvariable/mytestWSDL> is
added in the process tag.
>>>>
>>>> There exists a usability issue in defining the getVariableProperty() function as it stands today in the bpel mapper
and i raised this issue with Sergey and filed it as a bug on netbeans issuzilla.
>>>> 146718 <http://www.netbeans.org/issues/show_bug.cgi?id=146718> .
>>>>
>>>> attached is the corrected project zip. Could you test it and if possible add these comments in the bug ticket and
close it, as i cannot accept nor modify the ticket in the open-esb tracker.
>>>>
>>>> Thanks
>>>> Philip
>>>>
>>>> Geetha Genipudi wrote:
>>>>> I've submitted issue 446.
>>>>>
>>>>> Thanks,
>>>>> Geetha 


Comment 3 ggenipudi 2008-09-10 22:17:44 UTC
Created attachment 69586 [details]
project
Comment 4 ggenipudi 2008-09-10 22:22:45 UTC
Created attachment 69588 [details]
comp app project
Comment 5 ggenipudi 2008-09-10 22:23:29 UTC
Created attachment 69589 [details]
log file
Comment 6 Sergey Lunegov 2008-10-08 14:23:03 UTC
We eliminate getVariableProperty functoid from mapper pallete. The NMpropeerties are created in a way Philip described.
Other properties will be supported in next release. Change DEFECT to ENHANCEMENT.