Index
2008-11-11 17:34 – <lalong1@charter.net>: [dabo-users] Adding data to bizobj programmatically
2008-11-11 17:56 – Ed Leafe : Re: [dabo-users] Adding data to bizobj programmatically
2008-11-11 18:24 – <lalong1@charter.net>: Re: [dabo-users] Adding data to bizobj programmatically
2008-11-11 18:26 – <lalong1@charter.net>: Re: [dabo-users] Adding data to bizobj programmatically
2008-11-11 21:00 – Ed Leafe : Re: [dabo-users] Adding data to bizobj programmatically
Back to top
[dabo-users] Adding data to bizobj programmatically

Author: <lalong1@charter.net>

Posted: 2008-11-11 17:34:22   Link

We would like to append a record into the primary biz obj from a dataset

gathered from another bizobj.

We are trying the following

myrec=bizobj.getDataSet()

self.Form.PrimaryBizobj._CurrentCursor._records += myrec

But when we do, the bizobj validate record nor any other methods seem to

fire when saving.

Are we going about this the wrong way?

Thanks,

Larry Long

©2008 <lalong1@charter.net>
Back to top
Re: [dabo-users] Adding data to bizobj programmatically

Author: Ed Leafe

Posted: 2008-11-11 17:56:57   Link

On Nov 11, 2008, at 4:34 PM, <lalong1@charter.net>

<lalong1@charter.net> wrote:

> We would like to append a record into the primary biz obj from a

> dataset

> gathered from another bizobj.

>

> We are trying the following

>

> myrec=bizobj.getDataSet()

> self.Form.PrimaryBizobj._CurrentCursor._records += myrec

>

> But when we do, the bizobj validate record nor any other methods

> seem to

> fire when saving.

>

> Are we going about this the wrong way?

The naming standard in Python says that any attribute or method that

begins with '_' means that it is an internal implementation, and

should not be accessed outside of the class. While you've changed the

recordset, you've bypassed several internal details that keep track of

the state of the various records.

So let me understand what you need to do, and perhaps we could add a

simple way to do it to the framework. You want to pass a dataset to a

bizobj, and have it add that dataset to its current dataset? Seems

simple enough, but a couple of questions: what should happen if the

columns are not the same? What about if a PK is duplicated? Should the

validation fire at the time they are added, or when they are saved?

What about field-level validation? Can we assume that these records

are all new, i.e., all INSERTs into the database?

-- Ed Leafe

©2008 Ed Leafe
Back to top
Re: [dabo-users] Adding data to bizobj programmatically

Author: <lalong1@charter.net>

Posted: 2008-11-11 18:24:39   Link

-----Original Message-----

From: dabo-users-bounces@leafe.com [mailto:dabo-users-bounces@leafe.com] On

Behalf Of Ed Leafe

Sent: Tuesday, November 11, 2008 5:57 PM

To: Dabo Users list

Subject: Re: [dabo-users] Adding data to bizobj programmatically

On Nov 11, 2008, at 4:34 PM, <lalong1@charter.net> <lalong1@charter.net>

wrote:

> We would like to append a record into the primary biz obj from a

> dataset gathered from another bizobj.

>

> We are trying the following

>

> myrec=bizobj.getDataSet()

> self.Form.PrimaryBizobj._CurrentCursor._records += myrec

>

> But when we do, the bizobj validate record nor any other methods seem

> to fire when saving.

>

> Are we going about this the wrong way?

The naming standard in Python says that any attribute or method that

begins with '_' means that it is an internal implementation, and should not

be accessed outside of the class. While you've changed the recordset, you've

bypassed several internal details that keep track of the state of the

various records.

So let me understand what you need to do, and perhaps we could add a

simple way to do it to the framework. You want to pass a dataset to a

bizobj, and have it add that dataset to its current dataset? Seems simple

enough, but a couple of questions: what should happen if the columns are not

the same? What about if a PK is duplicated? Should the validation fire at

the time they are added, or when they are saved?

What about field-level validation? Can we assume that these records are all

new, i.e., all INSERTs into the database?

-- Ed Leafe

Ed,

Our goal is to "nearly" duplicate a record with only a field or two

difference without having to go thru a looping procedure.

I understand about the "_" objects. My try was based on the cursormixin's

new() method code and it seemed simple enough to duplicate. I then tried

looping thru the data using the getFieldNames.

>def getFieldNames(self):

> """Returns a tuple of all the field names in the cursor."""

However, getFieldNames returns all the fields from the backend and not the

fields in my bizObj so it blew up when it hit a field not defined in the

bizobj.

The pkid is a non-updatable field in the bizobj so it's a "don't care".

Validation behaviour remains unchanged. Yes, all are new. Columns must be

assumed to be a subset of the target, otherwise ignored (in our case this

won't happen)

Thanks,

Larry

[excessive quoting removed by server]

©2008 <lalong1@charter.net>
Back to top
Re: [dabo-users] Adding data to bizobj programmatically

Author: <lalong1@charter.net>

Posted: 2008-11-11 18:26:53   Link

Ed,

Also, the way I am trying to implement is from an input form, user hit a

button and another instance of the form opens up, pre-populated with

"parent" data, so the user can modify data as needed then save.

Larry

-----Original Message-----

From: dabo-users-bounces@leafe.com [mailto:dabo-users-bounces@leafe.com] On

Behalf Of Ed Leafe

Sent: Tuesday, November 11, 2008 5:57 PM

To: Dabo Users list

Subject: Re: [dabo-users] Adding data to bizobj programmatically

On Nov 11, 2008, at 4:34 PM, <lalong1@charter.net> <lalong1@charter.net>

wrote:

> We would like to append a record into the primary biz obj from a

> dataset gathered from another bizobj.

>

> We are trying the following

>

> myrec=bizobj.getDataSet()

> self.Form.PrimaryBizobj._CurrentCursor._records += myrec

>

> But when we do, the bizobj validate record nor any other methods seem

> to fire when saving.

>

> Are we going about this the wrong way?

The naming standard in Python says that any attribute or method that

begins with '_' means that it is an internal implementation, and should not

be accessed outside of the class. While you've changed the recordset, you've

bypassed several internal details that keep track of the state of the

various records.

So let me understand what you need to do, and perhaps we could add a

simple way to do it to the framework. You want to pass a dataset to a

bizobj, and have it add that dataset to its current dataset? Seems simple

enough, but a couple of questions: what should happen if the columns are not

the same? What about if a PK is duplicated? Should the validation fire at

the time they are added, or when they are saved?

What about field-level validation? Can we assume that these records are all

new, i.e., all INSERTs into the database?

-- Ed Leafe

Ed,

Our goal is to "nearly" duplicate a record with only a field or two

difference without having to go thru a looping procedure.

I understand about the "_" objects. My try was based on the cursormixin's

new() method code and it seemed simple enough to duplicate. I then tried

looping thru the data using the getFieldNames.

>def getFieldNames(self):

> """Returns a tuple of all the field names in the cursor."""

However, getFieldNames returns all the fields from the backend and not the

fields in my bizObj so it blew up when it hit a field not defined in the

bizobj.

The pkid is a non-updatable field in the bizobj so it's a "don't care".

Validation behaviour remains unchanged. Yes, all are new. Columns must be

assumed to be a subset of the target, otherwise ignored (in our case this

won't happen)

Thanks,

Larry

[excessive quoting removed by server]

©2008 <lalong1@charter.net>
Back to top
Re: [dabo-users] Adding data to bizobj programmatically

Author: Ed Leafe

Posted: 2008-11-11 21:00:02   Link

On Nov 11, 2008, at 5:26 PM, <lalong1@charter.net>

<lalong1@charter.net> wrote:

> Also, the way I am trying to implement is from an input form, user

> hit a

> button and another instance of the form opens up, pre-populated with

> "parent" data, so the user can modify data as needed then save.

OK, I've just committed an update to dBizobj that includes an

'appendDataSet()' method. Let me know if this does what you need it to

do.

-- Ed Leafe

©2008 Ed Leafe