Portal Entitlements for user defined objects
Hi,
The UUP aggregates the user profile information from different backed data sources.
One of the properties in the propertyset is a multivalued property. I populate
this by the following code:
PropertyMapKey propertyMapKeyM = new PropertyMapKeyImpl(null,"DA_Privilege");
String str="LAB1_CAPLinks_ViewReports" + "," + "LAB1_CAPLinks_EditReports"; //hardcoded
for testing
propertyCache.put(propertyMapKeyM,str);
(This code resides in the MyEntityPropertyManager)
When I go to the portal administration screen, I do not see the values, it instead
only gives me the object id of the java String array.
Could someone please help me with the following questions:
1. How do I populate the multivalued property ? I see in documentation that there
is 2 different PropertyCache implementation......confused which one to use and
how.
2. Is there a way to define user defined objects in UUP and have portlets entitled
to the state of the object ? (a custom entitlement code)
3. Any sample code would be helpfull
Thanks,
Uday
Thank You Greg. Now it works.
-Uday
Gregory Smith <[email protected]> wrote:
I'm not totally sure, but I would imagine you want to put a List of
Strings into the propertyCache if the property is supposed to be
multivalued text, e.g.:
PropertyMapKey propertyMapKeyM = new PropertyMapKeyImpl(null,
"DA_Privilege");
List strs = new ArrayList(2);
strs.add("LAB1_CAPLinks_ViewReports");
strs.add("LAB1_CAPLinks_EditReports");
propertyCache.put(propertyMapKeyM, strs);
I know that all of the code that calls the UUP and property sets code
expects a Collection back from a multivalued property (but I'm not sure
about a UUP implementation).
Greg
Udayraj Nair wrote:
Hi,
The UUP aggregates the user profile information from different backeddata sources.
One of the properties in the propertyset is a multivalued property.I populate
this by the following code:
PropertyMapKey propertyMapKeyM = new PropertyMapKeyImpl(null,"DA_Privilege");
String str="LAB1_CAPLinks_ViewReports" + "," + "LAB1_CAPLinks_EditReports";//hardcoded
for testing
propertyCache.put(propertyMapKeyM,str);
(This code resides in the MyEntityPropertyManager)
When I go to the portal administration screen, I do not see the values,it instead
only gives me the object id of the java String array.
Could someone please help me with the following questions:
1. How do I populate the multivalued property ? I see in documentationthat there
is 2 different PropertyCache implementation......confused which oneto use and
how.
2. Is there a way to define user defined objects in UUP and have portletsentitled
to the state of the object ? (a custom entitlement code)
3. Any sample code would be helpfull
Thanks,
Uday
Similar Messages
-
Crystal Report Templates for User-Defined Objects
Hello Experts,
I am running SAP B1 8.8 PL11. In the current patch SAP has default Crystal Reports that can be used as Layouts for Invoices, Credit Memo's so on. Is it possbile to have layouts for user defined objects ( say for instance i have a customized form under sales module, can i import a crystal template for this customized form?). In the report layout manager i don't see an option to import user-defind objects.
Any help would be appreciated.
Thanks,
PraneethIf this is still a problem please re-post to the SAP Integration Kit forum.
-
CFL for user defined object in matrix
I am creating CFL for city .For this I created a user defined table and later registred it to create the object of City.I created the CFL for City as ,
Private Sub AddCFL()
Dim intI As Integer
Dim objCFLsName As SAPbouiCOM.ChooseFromListCollection
Dim objParaName As SAPbouiCOM.ChooseFromListCreationParams
Dim objCFLName As SAPbouiCOM.ChooseFromList
Dim objCons As SAPbouiCOM.Conditions
Dim objCon As SAPbouiCOM.Condition
Try
objForm = SBO_Application.Forms.ActiveForm
For intI = 0 To objForm.DataSources.UserDataSources.Count - 1
If objForm.DataSources.UserDataSources.Item(intI).UID = "CityName" Then
Exit Sub
End If
Next
objForm.DataSources.UserDataSources.Add("CityName", SAPbouiCOM.BoDataType.dt_SHORT_TEXT)
objCFLsName = objForm.ChooseFromLists
objParaName = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)
objParaName.MultiSelection = False
objParaName.UniqueID = "CFL"
objParaName.ObjectType = "City"
objCFLName = objCFLsName.Add(objParaName)
objCons = objCFLName.GetConditions
objCon = objCons.Add
objCon.Alias = "U_Active"
objCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
objCon.CondVal = "Y"
objCFLName.SetConditions(objCons)
Catch ex As Exception
SBO_Application.MessageBox("AddCFL()=" & ex.Message)
End Try
End Sub
I want to load city names in matrix using this cfl.For this, I added few blank rows in matrix.Then I binded the matrix as ,
Private Sub BindMatrix()
Dim objColumns As SAPbouiCOM.Columns
Dim objColumn As SAPbouiCOM.Column
Dim matDetails As SAPbouiCOM.Matrix
objColumn = objColumns.Item("CityName")
objColumn.DataBind.SetBound(True, "", "CityName")
objColumn.ChooseFromListUID = "CFL"
objColumn.ChooseFromListAlias = "CityName"
objColumn.Editable = True
matDetails.LoadFromDataSource()
End Sub
Problem is created by ChooseFromListAlias .It gives error as,
Data Source - Alias Not Found
If I remove that statement, the cfl fires when I press tab in the matrix.But I can not set value in the matrix.I created CFL as,
Private Sub AddCFL()
Dim intI As Integer
Dim objCFLsName As SAPbouiCOM.ChooseFromListCollection
Dim objParaName As SAPbouiCOM.ChooseFromListCreationParams
Dim objCFLName As SAPbouiCOM.ChooseFromList
Dim objCons As SAPbouiCOM.Conditions
Dim objCon As SAPbouiCOM.Condition
Try
objForm = SBO_Application.Forms.ActiveForm
For intI = 0 To objForm.DataSources.UserDataSources.Count - 1
If objForm.DataSources.UserDataSources.Item(intI).UID = "CityName" Then
Exit Sub
End If
Next
objForm.DataSources.UserDataSources.Add("CityName", SAPbouiCOM.BoDataType.dt_SHORT_TEXT)
objCFLsName = objForm.ChooseFromLists
objParaName = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)
objParaName.MultiSelection = False
objParaName.UniqueID = "CFL"
objParaName.ObjectType = "City"
objCFLName = objCFLsName.Add(objParaName)
objCons = objCFLName.GetConditions
objCon = objCons.Add
objCon.Alias = "U_Active"
objCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
objCon.CondVal = "Y"
objCFLName.SetConditions(objCons)
Catch ex As Exception
SBO_Application.MessageBox("AddCFL()=" & ex.Message)
End Try
End Sub
Private Sub BindMatrix()
Dim objColumns As SAPbouiCOM.Columns
Dim objColumn As SAPbouiCOM.Column
Dim matDetails As SAPbouiCOM.Matrix
Try
If SBO_Application.Forms.ActiveForm.UniqueID = "TourDetails" Then
matDetails = SBO_Application.Forms.ActiveForm.Items.Item("matDetails").Specific
Else
matDetails = objForm.Items.Item("matDetails").Specific
End If
objColumns = matDetails.Columns
objColumn = objColumns.Item("#")
objColumn.DataBind.Bind("objDT", "#")
objColumn.Editable = False
objColumn = objColumns.Item("CityName")
'If strPara = "Edit" Then
objColumn.DataBind.Bind("objDT", "CityName")
'Else
' objColumn.DataBind.SetBound(True, "", "CityName")
'End If
objColumn.ChooseFromListUID = "CFL"
'objColumn.ChooseFromListAlias = "CityName"
objColumn.Editable = True
objColumn.Width = 290
objColumn = objColumns.Item("NoOfVisits")
objColumn.DataBind.Bind("objDT", "NoOfVisits")
objColumn.Editable = True
objColumn = objColumns.Item("FromDate")
objColumn.DataBind.Bind("objDT", "FromDate")
objColumn.Editable = True
objColumn.Width = 80
objColumn = objColumns.Item("ToDate")
objColumn.DataBind.Bind("objDT", "ToDate")
objColumn.Editable = True
objColumn.Width = 80
matDetails.LoadFromDataSource()
Catch ex As Exception
SBO_Application.MessageBox("BindMatrix()=" & ex.Message)
End Try
End Sub
Edited by: Dilip Kumbhar on Mar 31, 2010 10:02 AM -
Transaction Notification For User Defined Object
Dear Expert,
I want to create a transaction notification for my user defined form. I have a matrix on my form which has a field as 'Code'. I want that this field (On Row Level) should have unique values all the time while adding or updating the form.
Object Type: MaterialMaster
Table Name: MaterialDetails
FieldName: U_Code
Plz help me to get this notification.
RegardsHi Amit,
Please check below query.
IF @object_type = 'MaterialMaster' AND @transaction_type IN('A','U') and @error = 0
BEGIN
IF ( SELECT COUNT(*)
FROM MaterialDetails A
WHERE A.U_Code IN (SELECT U_Code FROM MaterialDetails WHERE U_Code = @list_of_cols_val_tab_del)
GROUP BY A.U_Code
HAVING COUNT(*) > 1
) >1
BEGIN
set @error = -10
set @error_message = 'You can not Add Dublicate Code'
END
End
Hope this help
Regards::::
Atul Chakraborty -
Document numbering for User Define Object
Hi,
Anyone know how to use numbering series in UDO?
I've created 3 doc series for the object. one off the series is the default. When i select other doc series on my form, after I add the doc, the series code is captured but the the number is wrong. it took the default number.
eg..
Series A: 1-999 as default
Series B: 1000 -1999
I pick B and add, Series code is ok but the number taken is from series A.
Q.Hi Andy,
The system is supposed to get the correct number as you would expect. However there is a bug in SAP Business One 2007 A Release.
If you have access to the Note 1266379 you can see the detailed scenario as described by you.
Currently the issue is planned for fixing in February 2009 patch for 2007A. You can check the info.txt file to see if the fix was included.
Kind Regards,
Friederike
SAP Business One Forums Team -
Using User Defined Object in B1if
Hello Expert,
I am trying to configure the B1if scenario for User Defined Object, But when i check the consistency of the scenario there are three issues
1. 0142 vBIU warning - inbound - channel: defined object identifier is not listed in the repository
2. 0259 vBIU inconsistency - outbound - details: 'Service Method Identifier' is not correct
3. 0262 vBIU inconsistency - outbound - details: 'Get Method Identifier' is not correct
I have prepared the Test as a UDO in SAP B1.
*CONFIGURATION*
Scenario Step Definition INBOUND - CHANNEL
Channel : INB_B1_EVNT_ASYN_EVT
Type : SAP Business One
Mode : Asynchronous
Trigger : B1Event
Object : Test
Identification Parameter : n.a.
Namespace Definition : n.a.
Retrieval
Method : Retrieval
Adapter : DI API
Type : Service
Rule Document :
id : GeneralService
type : get
method : getByParams
tag : TestParams
keys : Code(Code)
Outbound Phase
Channel : OUT_B1
Type : SAP Business One
Format : DI Service
Regards
Vijay BarapatreHi All,
I have a UDO with one Table and Code and Name as fields, when I add data in SAP with the default screen I want to trigger it in B1IF, I have tried identifier 152, 153 and many more.
But my trigger keeps returning blank so it doesn't go through to my processes.
<?xml version="1.0" encoding="utf-8" ?>
- <Msg xmlns="urn:com.sap.b1i.vplatform:entity" xmlns:b1il="urn:com.sap.b1i.sim:b1ilog" xmlns:b1im="urn:com.sap.b1i.sim:b1imessage" xmlns:bfa="urn:com.sap.b1i.bizprocessor:bizatoms" xmlns:sim="urn:com.sap.b1i.sim:entity" xmlns:vpf="urn:com.sap.b1i.vplatform:entity" MessageId="13102816541180273503C0A80079CC46" BeginTimeStamp="20131028165411" recording="true" logmsg="0009" msglogexcl="false" MessageLog="true">
- <Header>
<msglog step="Default message log" always="false" b1ifactive="true" />
- <Resumption>
<starter ipo="/vP.0010000119.in_BEAE/com.sap.b1i.vplatform.runtime/INB_B1_EVNT_ASYN_EVT/INB_B1_EVNT_ASYN_EVT.ipo/proc" />
</Resumption>
<IPO Id="INB_B1_EVNT_ASYN_EVT" tid="13102815571480273490C0A8007961AC" />
<Sender Id="0010000119" />
</Header>
- <Body>
- <Payload Role="T" Type="B1Event" add="">
- <Event xmlns="" B1EventFilter="false">
- <b1e:b1events xmlns:b1e="urn:com.sap.b1i.sim:b1event">
- <b1e:b1event>
<b1e:eventsource>MobiPay</b1e:eventsource>
<b1e:objecttype>FC_PODO</b1e:objecttype>
<b1e:transactiontype>A</b1e:transactiontype>
<b1e:usercode>manager</b1e:usercode>
<b1e:userid>manager</b1e:userid>
- <b1e:keys count="1">
- <b1e:key>
<b1e:name>Code</b1e:name>
<b1e:value>test 2</b1e:value>
</b1e:key>
</b1e:keys>
<b1e:sourcesite>BDRAPER</b1e:sourcesite>
<b1e:sourceport>1433</b1e:sourceport>
<b1e:sourcetype>6</b1e:sourcetype>
<b1e:sld value="BDRAPER!!MobiPay" />
</b1e:b1event>
</b1e:b1events>
- <b1ie:B1IEvent xmlns:b1ie="urn:com.sap.b1i.sim:b1ievent" SysId="0010000119" SysTypeId="B1.9.0" Task="I" LocalObjectType="FC_PODO">
- <b1ie:PrimaryKeyList>
<b1ie:PrimaryKey Key="Code" Value="test 2" />
</b1ie:PrimaryKeyList>
</b1ie:B1IEvent>
</Event>
</Payload>
<Payload Role="S" />
</Body>
</Msg>
Please help,
Regards,
Brenden Draper. -
What is the Object Type for User Define table ?
Dear All Experts,
I create one of the User Define Table with no. of UDF's
I already register User Define Table with Unique ID.
As per my knowledge, Unique ID is our Object type for that User Define Table.
I want to add Transaction Notification Code for created Used Define Table.
This Transaction Notification prevents user to must enter name in that form.
IF (@object_type = 'Z_Roto' AND (@TRANSACTION_TYPE = 'A' or @TRANSACTION_TYPE = 'U'))
BEGIN
If not Exists (Select T0.DocEntry from [@Z_ROTO] T0 Where ( T0.Name is null OR T0.Name = ' ' ) AND T0.Code = @list_of_cols_val_tab_del )
begin
SET @error = 1
SET @error_message = 'Name is NULL then So, Please enter ZERO Value i.e. 0 in Filed_Name'
End
End
Please help me for this problem.
Thanks & Regards,
Nishit MakadiaHi All,
Thanks for your replay.
Below code is working for User Define Table's Transaction Notification
IF (@transaction_type = 'A' OR @transaction_type = 'U') AND @object_type = 'Z_Roto'
BEGIN
If Exists (Select T0.Code from [@Z_ROTO] T0 Where ( T0.Name is null OR T0.Name = ' ' ) AND T0.Code = @list_of_cols_val_tab_del)
begin
select @error = 10
select @error_message = 'Name is NULL then So, Please enter ZERO Value i.e. 0 in Filed_Name'
End
End
Necessary to Remember 4 Things. That are mentioned below.
1) Register User Define Table (UDT) with using "Object Registration Wizard". For Example : @object_type = 'Z_Roto'
2) When you define selection criteria then it must be compulsory for use Code Field. For Example : Select T0.Code from [@Z_Roto]
3) When you define selection criteria then it must be compulsory for use Code for @list_of_cols_val_tab_del.
4) Use error code as 10 Number
Thanks & Regards,
Nishit Makadia -
Approval Templates for the User Defined Object(UDO)
Hi,
I just wanted to check whether the Approval Templates for the User Defined Object(UDO)...i.e. Said to the User Defined Form..
if possibe how it can be done.....
Thanks in Advance,
With Regards,
MadhuSudhana Rao.GHi MadhuSudhana Rao,
The function you requested is not available yet.
Thanks,
Gordon -
I developed our own Authentication, Identity Assertion & Authorization providers
for weblogic 8.1 SP1. In the authenticator MBean i have one method which takes
user defined object as a argument and returns a user defined object. i am able
to call all the methods which takes java objects(for example: String, int, ArrayList,
HashMap, Etc...) as a argument and returns also a java object but when i user
any user defined object then it gives exception. if in the argument i used user
defined object then it is not able to call that method telling NoSuchMethodException.
Is there any way to use user defined object as an argument to MBean method?
can anyone please help us as we r in the final stage of the project?
Thanks
Lakshmi"Lakshmi Padhy" <[email protected]> wrote in message
news:3fc2f50c$[email protected]..
>
I developed our own Authentication, Identity Assertion & Authorizationproviders
for weblogic 8.1 SP1. In the authenticator MBean i have one method whichtakes
user defined object as a argument and returns a user defined object. i amable
to call all the methods which takes java objects(for example: String, int,ArrayList,
HashMap, Etc...) as a argument and returns also a java object but when iuser
any user defined object then it gives exception. if in the argument i useduser
defined object then it is not able to call that method tellingNoSuchMethodException.
>
Is there any way to use user defined object as an argument to MBeanmethod?
>
I seem to remember that jmx only supports scalar datatypes. Ask in the
weblogic.developer.interest.management newsgroup. -
Manual document number in User-Defined Object
Hi Experts,
I have a user-defined object of document type. I am trying to post a document using the General Service. However, I cannot assign manual document number. There is no handwritten property available. Is it possible to assign manual document number in user-defined objects using the DI API?
Thanks.
MelvinHi,
This issue has been resolved. For the benefit of those who will be encountering this error, it was resolved by manually assigning the Handwrtten field to 'Y'. Here is the code fragment:
shipmentHeader.SetProperty("Handwrtten", 'Y')'; -
DTW user-defined object issues
Dear all,
I've tried to import a user-defined object with a template through DTW.
However, I got an error message "To generate this document, first define the numbering series in the Administration moduleApplication-defined or object-defined error.
Any ideas?
Pls help.
ThanksHi,
It is a limitation of the UDO that it is not possible to enter new values via DI or DTW.
There is a way to automatically fill your object's user tables. Please see the Note [804685|https://websmp130.sap-ag.de/sap(bD1odSZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=804685] for more details regarding the issue description and the workaround available.
hope it helps,
Regards,
Ladislav
SAP Business One Forum Team -
how to use UDO--user defined object in sap b1????
Creating UDO in SAP B1
1. Create UDT, ( Create UDT as Document if want the code to be in auto increament form)
2. Create UDFs for created UDT,
3. Register Object using "Object Registration Wizard",
(a) Put UDT's unique name in "UNIQUE ID" field of UDO (Image - UDO01.jpg) ,
(b) Do further as per requirements,
4. After Registering the UDO, you can access it from where you have set it to access (@ UI Settings of "User - Defined Object Registration Wizard"),
5. If you wana change the field location / change the design of the form, Open screen painter as and click on "Open User Defined Object List " (Mostly 3rd icon from Left in screen painter),
6. Make required changes and save it by clicking "Save Form To Database" ( Mostly 2nd icon from Left in Screen Painter),
7. Now the UDO is ready and can be used by user. -
Problen in ChooseFromList & User Defined Object
Hello.
I'm trying to use a [ChooseFromList] that calls info from one User Table called @LABS this table is MasterData type.
I add a User Defined Object in runtime, called UO_Labs
Then, I add one ChooseFromList to my form (This form was made in ScreenPainter)
The user object was created fine, the ChooseFromList is added fine, the form loads fine, but, when I press tab or the button of the ChooseFromList I get this error: "Internal error (-1003) ocurred [Message 131-183]"
I try to use my ChooseFromList in one Matrix and in one EditText objects. And gives me the same error in both objects.
I'm using SAP 2007 PL 35
This is my code:
Adding the User Defined Object -
Dim UO As SAPbobsCOM.UserObjectsMD
UO = CompanyObj.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD)
UO.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO
UO.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES
UO.CanClose = SAPbobsCOM.BoYesNoEnum.tYES
UO.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES
UO.CanFind = SAPbobsCOM.BoYesNoEnum.tYES
UO.CanLog = SAPbobsCOM.BoYesNoEnum.tNO
UO.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO
UO.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES
UO.Code = "UO_Labs"
UO.Name = "Laboratory Info."
UO.ObjectType = SAPbobsCOM.BoUDOObjType.boud_MasterData
UO.TableName = "LABS"
If UO.FormColumns.Count = 0 Then UO.FormColumns.Add()
UO.FormColumns.SonNumber = 0
UO.FormColumns.FormColumnAlias = "Code"
UO.FormColumns.FormColumnDescription = "Code"
UO.FormColumns.Add()
UO.FormColumns.SonNumber = 0
UO.FormColumns.FormColumnAlias = "Name"
UO.FormColumns.FormColumnDescription = "Name"
If UO.Add() <> 0 Then
Application.MessageBox(CompanyObj.GetLastErrorDescription)
End If
END Adding the User Defined Object -
This code adds my UDO and it works fine, has data and do the work.
Adding the [ChooseFromList] Object -
'// form object is send in parameters.
Dim oCFLs As SAPbouiCOM.ChooseFromListCollection = f.ChooseFromLists
Dim oCFL As SAPbouiCOM.ChooseFromList
Dim oCFL_CP As SAPbouiCOM.ChooseFromListCreationParams
Dim matrix As SAPbouiCOM.Matrix = form.Items.Item("matrix").Specific
oCFL_CP = App.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)
oCFL_CP.MultiSelection = False
oCFL_CP.ObjectType = "UO_Labs"
oCFL_CP.UniqueID = "cfl_Labs"
oCFL = oCFLs.Add(oCFL_CP)
matrix.Columns.Item("labCode").ChooseFromListUID = "cfl_Labs"
matris.Columns.Item("labCode").ChooseFromListAlias = "Code"
form.Refresh()
END Adding the [ChooseFromList] Object -
Thanks for your time...
Greetings
Gabriel Vasquez.Hi Gabriel,
Please check in B1 if the UDO is created correctly, specifically the CanFind option. I got that error once, with one of my addons, that somehow was created with CanFind=tNo, despite my code indication CanFind=tYes...
Also, try adding the CFL directly in the XML form.
<column uid="C_labCod" type="116" title="Lab. Code" description="Laboratory Code" visible="1" AffectsFormMode="1" width="70" disp_desc="1" editable="1" right_just="0" val_on="Y" val_off="N" backcolor="-1" forecolor="-1" text_style="0" font_size="-1" ChooseFromListUID="cfl_Labs" ChooseFromListAlias="Code">
<databind databound="1" table="@LABS" alias="U_labCode"></databind>
<ExtendedObject linkedObject="" LinkedObjectType=""></ExtendedObject>
</column>
<ChooseFromListCollection>
<action type="add">
<ChooseFromList UniqueID="-1" ObjectType="-1" MultiSelection="0" IsSystem="1"></ChooseFromList>
<ChooseFromList UniqueID="cfl_Labs" ObjectType="UO_Labs" MultiSelection="0" IsSystem="0"></ChooseFromList>
</action>
</ChooseFromListCollection>
Also, it's a good practice to your SAP partner's NameSpace as prefix to UDOs, UDTs, UDFs and UDKeys, in order to avoid conflicts with other partner's add-ons.
Regards,
Vítor Vieira -
How to clone a user-defined object?
Hello,
I need to clone an Object[] array (propArray) that holds objects of Integer, Double, Boolean type, along with objects of user-defined ClassA, ClassB, ClassC type. The matter is that the ClassA object isn't being cloned, while the rest of the user-defined objects are cloned just fine.
In more detail, ClassA has two properties:
public class ClassA implements Cloneable{
private String penaltyFor;
private Penalty[] penaltyArray;
protected Object clone(){
try{
ClassA o = (ClassA)super.clone();
o.penaltyFor = this.penaltyFor;
// o.penaltyArray = (Penalty[])penaltyArray.clone(); //This ain't working.
//But neither does this :(.
int penCount = this.penaltyArray.length;
o.penaltyArray = new Penalty[penCount];
for(int i = 0; i < penCount; i++)
o.penaltyArray[i] = (Penalty)this.penaltyArray.clone();
return o;
} catch(CloneNotSupportedException e){ throw new InternalError(); }
The Penalty class contains properties of primitive type and here is its clone() method:
public class Penalty implements Cloneable{
private String penaltyDesc;
private int lowLimit, upperLimit, penaltyValue;
protected Object clone(){
try{
Penalty o = (Penalty)super.clone();
o.penaltyDesc = this.penaltyDesc;
o.lowLimit = this.lowLimit;
o.upperLimit = this.upperLimit;
o.penaltyValue = this.penaltyValue;
return o;
} catch(CloneNotSupportedException e){ throw new InternalError(); }
}I don't know what else to try. I suppose the problem is the Penalty[] array, but I may be wrong. An alternative would be to use Copy Constructors, but it will cause too many changes to the code, since the clone() method is used for the propArray copy in many places and the ClassA object is a late addition to the propArray (unfortunately it wasn't planned to exist from the beginning).
Thank's.class ClassA implements Cloneable{
private String penaltyFor;
private Penalty[] penaltyArray;
public Object clone(){
try{
ClassA o = (ClassA) super.clone();
if (penaltyArray!=null){
o.penaltyArray = (Penalty[]) penaltyArray.clone();
for(int i = 0; i < penaltyArray.length; i++) {
Penalty penalty = this.penaltyArray;
if (penalty!=null)
o.penaltyArray[i] = (Penalty) penalty.clone();
return o;
} catch(CloneNotSupportedException e){
throw new InternalError();
class Penalty implements Cloneable{
private String penaltyDesc;
private int lowLimit, upperLimit, penaltyValue;
public Object clone(){
try{
return super.clone();
} catch(CloneNotSupportedException e){
throw new InternalError();
If your Penalties are immutable, you don't need to clone them -- rather,
make then unclonable, like Strings. -
EJB : How to return user defined object
hi,
i am a newbie in EJB. i have the following simple problem:
public interface MyApp extends EJBObject
public String getResult() throws RemoteException;
}the above code will be ok because it is returning String object.
however, i need to return a user defined object like:
public interface MyApp extends EJBObject
public MyResult getResult() throws RemoteException;
}then i got java.lang.ClassCastException during runtime.
please tell me how to resolve this problem.
thank you very muchsince you are a newbie, let me explain something to you. Ask your question in the proper forum. In case, you still don't understand there is a forum for EJB questions.
Maybe you are looking for
-
In 3 rd party business before vendors invoice (MIRO) we can create invoice to customer(VF01) . In the following scenario how can we justify Here the case is customer ordered 50 quantity of material. And vendor delivered only 30 quantity of material h
-
My 15in Pro won't play sound with out headphones.
The red light is on inide the port also. Ive tried wiggling a tooth pic and head phone jacks in gently but no luck. Any help??
-
How to print Warranty (Duration) on Delivery Note using PLD
Hi, How can I print Warranty (No. of Months) on Delivery Note using PLD. Warranty is already defined in a service template which is assigned to Item Master record. when i try to print "duration" from OCTT is shows all the duration values set in all s
-
Locate link browser window using windows 7 outlook 2003
I have been using windows 7 (64bit) along with outlook 2003 with no problem till today. All of a suddden everytime I click to open a link from within an outlook e-mail message a "locate link browser window opens" I see lots of issues on the internet
-
Is there anything i can do to download photoshop (of some sort) if msg comes up "Adobe Photoshop no longer supports your OS"